Biblioteca de Códigos QR em Rust

Gere Códigos QR com Rust

O crate qrcode de Rust fornece geração de códigos QR rápida e segura em memória. Ideal para aplicações de alto desempenho, WebAssembly e ferramentas de nível de sistema.

Instalação

Adicione o crate qrcode ao seu Cargo.toml.

Cargo.toml
[dependencies]
qrcode = "0.14"
image = "0.25"  # For PNG output

Gerar Códigos QR com Rust

Exemplos de código usando o crate qrcode.

QR Code as SVG

use qrcode::QrCode;
use qrcode::render::svg;

fn main() {
    let code = QrCode::new("https://qrcode.fun").unwrap();
    let svg = code.render::<svg::Color>()
        .min_dimensions(200, 200)
        .build();

    std::fs::write("qrcode.svg", &svg).unwrap();
    println!("SVG QR code saved!");
}

QR Code as PNG

use qrcode::QrCode;
use image::Luma;

fn main() {
    let code = QrCode::new("https://qrcode.fun").unwrap();
    let image = code.render::<Luma<u8>>()
        .dark_color(Luma([26u8]))
        .light_color(Luma([255u8]))
        .quiet_zone(true)
        .min_dimensions(300, 300)
        .build();

    image.save("qrcode.png").unwrap();
    println!("PNG QR code saved!");
}
QRCode.fun API

Gerar Códigos QR via API em Rust

Chame a API do QRCode.fun a partir de Rust usando reqwest para códigos QR estilizados.

Integração de API Rust
use reqwest;
use serde_json::json;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = reqwest::Client::new();
    let response = client
        .post("https://qrcode.fun/api/generate-qr-styled")
        .json(&json!({
            "data": "https://qrcode.fun",
            "width": 300,
            "height": 300,
            "type": "png",
            "margin": 10,
            "dotsOptions": { "color": "#1A2B3C", "type": "rounded" },
            "cornersSquareOptions": { "color": "#8564C3", "type": "extra-rounded" },
            "backgroundOptions": { "color": "#FFFFFF" }
        }))
        .send()
        .await?;

    let result: serde_json::Value = response.json().await?;
    println!("{}", &result["data"].as_str().unwrap()[..50]);
    Ok(())
}

Pré-visualização de Código QR ao Vivo

Experimente gerar um código QR com Rust agora mesmo.

Pré-visualização QR

Biblioteca Nativa vs API

Compare o uso do crate qrcode com a API do QRCode.fun.

FuncionalidadeCrate qrcodeQRCode.fun API
Complexidade de configuraçãocargo add + crate image para PNGUma única requisição HTTP via reqwest
PersonalizaçãoCores via crate imageEstilização completa: cores, formas, logotipos
Suporte offlineSimRequer internet
Manutençãocargo updateSempre atualizado
Formatos de saídaSVG, PNG (com crate image), terminalPNG, SVG

Casos de Uso de Códigos QR em Rust

Cenários comuns para códigos QR em aplicações Rust.

WebAssembly

Compile a geração de QR para WASM para criação ultrarrápida de códigos QR no navegador sem bibliotecas JavaScript.

Ferramentas CLI

Construa utilitários de linha de comando que geram códigos QR para exibição no terminal, saída de ficheiro ou integração com área de transferência.

Servidores de Alto Desempenho

Gere códigos QR em servidores web Actix ou Axum com alocação mínima de memória e rendimento máximo.

Sistemas Embebidos

Execute geração de códigos QR em dispositivos com recursos limitados onde as abstrações de custo zero do Rust brilham.

Mergulho Profundo no Ecossistema de Códigos QR em Rust

As abstrações de custo zero e a segurança de memória do Rust tornam-no especialmente adequado para geração de códigos QR de alto desempenho e implantação em WebAssembly.

Geração de QR com WebAssembly (WASM)

Rust compila para WebAssembly para geração de códigos QR no navegador com desempenho quase nativo. Use wasm-bindgen para expor uma função generate_qr que retorne strings SVG ou dados de pixels diretamente para JavaScript. O módulo WASM compilado tipicamente ocupa 50-100KB — comparável a uma biblioteca JavaScript mas significativamente mais rápido para geração em lote. Combine com wasm-pack para pacotes publicáveis no npm que funcionam em qualquer framework frontend.

Integração com Servidores Actix Web e Axum

Construa APIs de códigos QR de alto throughput com os frameworks web assíncronos do Rust. Tanto Actix Web como Axum tratam a geração de QR em handlers assíncronos, servindo bytes PNG com os headers Content-Type apropriados. O modelo de ownership do Rust elimina condições de corrida na geração concorrente de QR. Use middleware tower para limitação de taxa e validação de requisições. Faça benchmarks com criterion para verificar tempos de geração abaixo do milissegundo para códigos QR padrão.

Sistemas Embarcados e Ambientes no_std

O crate qrcode suporta ambientes no_std, permitindo geração de QR em microcontroladores e dispositivos embarcados sem sistema operativo. Gere matrizes QR em dispositivos ESP32 ou STM32 para configuração IoT, emparelhamento de dispositivos e diagnósticos. Em ambientes com recursos limitados, o uso previsível de memória do Rust (sem coletor de lixo) garante que a geração de QR nunca cause picos inesperados de memória ou latência.

Perguntas Frequentes

Perguntas comuns sobre a geração de códigos QR com Rust.

O crate qrcode é a escolha mais popular. Gera códigos QR como strings SVG ou como matriz que pode renderizar com o crate image.

Explore Bibliotecas de Códigos QR para Outras Linguagens

Encontre guias de geração de códigos QR e exemplos de código para a sua linguagem de programação preferida.

Comece a gerar códigos QR com Rust

Use o nosso gerador gratuito ou integre a API nas suas aplicações Rust.