Crates.io | qrcodegen-no-heap |
lib.rs | qrcodegen-no-heap |
version | 1.8.1 |
source | src |
created_at | 2023-08-20 18:15:07.452995 |
updated_at | 2023-08-20 19:07:35.486233 |
description | High-quality QR Code generator library |
homepage | https://www.nayuki.io/page/qr-code-generator-library |
repository | https://github.com/nayuki/QR-Code-generator |
max_upload_size | |
id | 949479 |
size | 59,045 |
This project aims to be the best, clearest QR Code generator library. The primary goals are flexible options and absolute correctness. Secondary goals are compact implementation size and good documentation comments.
Home page with live JavaScript demo, extensive descriptions, and competitor comparisons: https://www.nayuki.io/page/qr-code-generator-library
Core features:
std::vec::Vec
), instead relying on suitably sized buffers from the caller and fixed-size stack allocationsManual parameters:
More information about QR Code technology and this library's design can be found on the project home page.
extern crate qrcodegen;
use qrcodegen::Mask;
use qrcodegen::QrCode;
use qrcodegen::QrCodeEcc;
use qrcodegen::Version;
// Text data
let mut outbuffer = vec![0u8; Version::MAX.buffer_len()];
let mut tempbuffer = vec![0u8; Version::MAX.buffer_len()];
let qr = QrCode::encode_text("Hello, world!",
&mut tempbuffer, &mut outbuffer, QrCodeEcc::Medium,
Version::MIN, Version::MAX, None, true).unwrap();
let svg = to_svg_string(&qr, 4); // See qrcodegen-demo
// Binary data
let mut outbuffer = vec![0u8; Version::MAX.buffer_len()];
let mut dataandtemp = vec![0u8; Version::MAX.buffer_len()];
dataandtemp[0] = 0xE3;
dataandtemp[1] = 0x81;
dataandtemp[2] = 0x82;
let qr = QrCode::encode_binary(&mut dataandtemp, 3,
&mut outbuffer, QrCodeEcc::High,
Version::new(2), Version::new(7),
Some(Mask::new(4)), false).unwrap();
for y in 0 .. qr.size() {
for x in 0 .. qr.size() {
(... paint qr.get_module(x, y) ...)
}
}
More complete set of examples: https://github.com/nayuki/QR-Code-generator/blob/master/rust-no-heap/examples/qrcodegen-demo.rs .