Biblioteca de Códigos QR en Go

Genera Códigos QR con Go

Go es ideal para la generación de códigos QR de alto rendimiento en microservicios y herramientas CLI. Usa la biblioteca go-qrcode para generación local o la API de QRCode.fun para salidas estilizadas.

Instalación

Instala la biblioteca de códigos QR de Go usando go get.

go get
go get github.com/skip2/go-qrcode

Genera Códigos QR con Go

Ejemplos de código usando la biblioteca go-qrcode.

Basic QR Code Generation

package main

import "github.com/skip2/go-qrcode"

func main() {
    err := qrcode.WriteFile("https://qrcode.fun", qrcode.Medium, 256, "qrcode.png")
    if err != nil {
        panic(err)
    }
}

QR Code as Bytes (HTTP Handler)

package main

import (
    "net/http"
    "github.com/skip2/go-qrcode"
)

func qrHandler(w http.ResponseWriter, r *http.Request) {
    data := r.URL.Query().Get("data")
    if data == "" {
        data = "https://qrcode.fun"
    }

    png, err := qrcode.Encode(data, qrcode.Medium, 256)
    if err != nil {
        http.Error(w, err.Error(), 500)
        return
    }

    w.Header().Set("Content-Type", "image/png")
    w.Write(png)
}

func main() {
    http.HandleFunc("/qr", qrHandler)
    http.ListenAndServe(":8080", nil)
}
QRCode.fun API

Genera Códigos QR vía API en Go

Llama a la API de QRCode.fun desde Go para generar códigos QR estilizados.

Integración de API en Go
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
)

func main() {
    payload := map[string]interface{}{
        "data":   "https://qrcode.fun",
        "width":  300,
        "height": 300,
        "type":   "png",
        "margin": 10,
        "dotsOptions": map[string]string{
            "color": "#1A2B3C",
            "type":  "rounded",
        },
        "cornersSquareOptions": map[string]string{
            "color": "#8564C3",
            "type":  "extra-rounded",
        },
        "backgroundOptions": map[string]string{
            "color": "#FFFFFF",
        },
    }

    body, _ := json.Marshal(payload)
    resp, err := http.Post(
        "https://qrcode.fun/api/generate-qr-styled",
        "application/json",
        bytes.NewBuffer(body),
    )
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    data, _ := io.ReadAll(resp.Body)
    fmt.Println(string(data[:100]))
}

Vista Previa de Código QR en Vivo

Prueba a generar un código QR con Go ahora mismo.

Vista previa QR

Biblioteca Nativa vs API

Compara el uso de una biblioteca de códigos QR en Go con la API de QRCode.fun.

CaracterísticaBiblioteca NativaQRCode.fun API
Complejidad de configuracióngo get + importUna sola solicitud HTTP
PersonalizaciónTamaño, corrección de erroresEstilizado completo: colores, formas, logotipos
Soporte sin conexiónRequiere internet
MantenimientoActualizar go.modSiempre actualizado
Formatos de salidaPNGPNG, SVG

Casos de Uso de Códigos QR en Go

Escenarios comunes para códigos QR en aplicaciones Go.

Microservicios

Genera códigos QR en microservicios Go para respuestas de API, webhooks y arquitecturas basadas en eventos.

Herramientas CLI

Construye utilidades de línea de comandos que generan códigos QR para compartir Wi-Fi, acortar URLs o mostrar en terminal.

Funciones en la Nube

Despliega generación de QR como funciones serverless en AWS Lambda o Google Cloud Functions usando Go.

DevOps e Infraestructura

Genera códigos QR para URLs de despliegue, dashboards de monitoreo y endpoints de configuración.

Inmersión Profunda en el Ecosistema de Códigos QR en Go

La simplicidad y el rendimiento de Go lo hacen ideal para la generación de códigos QR en entornos nativos de la nube y de alto rendimiento.

Arquitectura de Microservicios con Generación de QR

Go sobresale en la construcción de microservicios dedicados a códigos QR. Despliega un servicio HTTP ligero usando net/http o Gin que acepte parámetros QR y devuelva bytes PNG. El modelo de goroutines de Go maneja miles de solicitudes concurrentes de generación de QR con memoria mínima. Combina con gRPC para generación de QR entre servicios internos, o expón una API REST detrás de un API gateway para consumidores externos.

Despliegue con Docker y Kubernetes

La compilación a un solo binario de Go hace que los servicios de generación de QR sean triviales de contenerizar. Construye una imagen Docker basada en scratch de menos de 10MB que incluya tu servicio QR con cero dependencias. Despliega en Kubernetes con escalado horizontal automático de pods basado en el uso de CPU durante picos de generación de QR. La biblioteca go-qrcode no tiene dependencias CGO, asegurando compilación cruzada limpia para objetivos linux/amd64 y linux/arm64.

Integración con la Biblioteca Estándar y Testing

La biblioteca estándar de Go complementa perfectamente la generación de códigos QR. Usa image/png e image/draw para renderizado personalizado más allá de lo que proporciona go-qrcode. El paquete net/http sirve códigos QR generados directamente sin un framework. Las herramientas integradas de testing y benchmarking de Go (go test -bench) te permiten medir el rendimiento exacto de generación — típicamente 5,000-10,000 códigos QR por segundo por núcleo para configuraciones estándar.

Preguntas Frecuentes

Preguntas comunes sobre la generación de códigos QR con Go.

skip2/go-qrcode es la biblioteca de códigos QR más popular de Go. Genera imágenes PNG y soporta tamaño configurable y niveles de corrección de errores.

Explora Bibliotecas de Códigos QR para Otros Lenguajes

Encuentra guías de generación de códigos QR y ejemplos de código para tu lenguaje de programación preferido.

Comienza a generar códigos QR con Go

Usa nuestro generador gratuito o integra la API en tus servicios Go.