Библиотека Rust QR Code

Генерация QR-кодов на Rust

Крейт qrcode для Rust обеспечивает быструю, безопасную по памяти генерацию QR-кодов. Идеален для высокопроизводительных приложений, WebAssembly и системных инструментов.

Установка

Добавьте крейт qrcode в ваш Cargo.toml.

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

Генерация QR-кодов на Rust

Примеры кода с использованием крейта 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

Генерация QR-кодов через API на Rust

Вызовите API QRCode.fun из Rust с помощью reqwest для стилизованных QR-кодов.

Интеграция 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(())
}

Предпросмотр QR-кода

Попробуйте сгенерировать QR-код на Rust прямо сейчас.

Предпросмотр QR

Нативная библиотека vs API

Сравните использование крейта qrcode с API QRCode.fun.

ФункцияКрейт qrcodeQRCode.fun API
Сложность настройкиcargo add + крейт image для PNGОдин HTTP-запрос через reqwest
КастомизацияЦвета через крейт imageПолное оформление: цвета, формы, логотипы
Офлайн-поддержкаДаТребуется интернет
Обслуживаниеcargo updateВсегда актуально
Форматы выводаSVG, PNG (с крейтом image), терминалPNG, SVG

Сценарии использования QR-кодов в Rust

Типичные сценарии для QR-кодов в Rust-приложениях.

WebAssembly

Компилируйте генерацию QR в WASM для молниеносного создания QR-кодов на стороне браузера без JavaScript-библиотек.

CLI-инструменты

Создавайте утилиты командной строки, генерирующие QR-коды для отображения в терминале, файлового вывода или интеграции с буфером обмена.

Высокопроизводительные серверы

Генерируйте QR-коды в веб-серверах Actix или Axum с минимальным выделением памяти и максимальной пропускной способностью.

Встраиваемые системы

Запускайте генерацию QR-кодов на устройствах с ограниченными ресурсами, где абстракции нулевой стоимости Rust проявляют себя наилучшим образом.

Часто задаваемые вопросы

Популярные вопросы о генерации QR-кодов на Rust.

Крейт qrcode — самый популярный выбор. Он генерирует QR-коды как SVG-строки или как матрицу, которую можно отрендерить с помощью крейта image.

Начните генерировать QR-коды на Rust

Используйте наш бесплатный генератор или интегрируйте API в свои Rust-приложения.