Генерация QR-кодов на Rust
Крейт qrcode для Rust обеспечивает быструю, безопасную по памяти генерацию QR-кодов. Идеален для высокопроизводительных приложений, WebAssembly и системных инструментов.
Установка
Добавьте крейт qrcode в ваш Cargo.toml.
[dependencies]
qrcode = "0.14"
image = "0.25" # For PNG outputГенерация QR-кодов на Rust
Примеры кода с использованием крейта qrcode.
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!");
}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!");
}Генерация QR-кодов через API на Rust
Вызовите API QRCode.fun из Rust с помощью reqwest для стилизованных QR-кодов.
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 прямо сейчас.
Нативная библиотека vs API
Сравните использование крейта qrcode с API QRCode.fun.
| Функция | Крейт qrcode | QRCode.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.
Начните генерировать QR-коды на Rust
Используйте наш бесплатный генератор или интегрируйте API в свои Rust-приложения.