qr_code

Crates.ioqr_code
lib.rsqr_code
version2.0.0
sourcesrc
created_at2020-10-10 11:51:49.38536
updated_at2023-05-30 18:25:36.95041
descriptionQR code encoder in Rust, support structured append (data in multiple qrcodes)
homepage
repositoryhttps://github.com/RCasatta/qr_code
max_upload_size
id297984
size331,951
Riccardo Casatta (RCasatta)

documentation

http://docs.rs/qr_code

README

qr_code

crates.io MIT OR Apache 2.0

QR code encoder and decoder [*] in Rust. Documentation.

Encoder

This lib forked https://docs.rs/qrcode mainly because of lack of support to structured QR code (multiple QR codes) even if the minimal change required has been pushed https://github.com/kennytm/qrcode-rust/pull/44

Moreover dependencies image, checked_int_cast and module render has been removed with a view to simplicity.

Decoder [*]

Decoder part is based on https://docs.rs/rqrr/0.3.0/rqrr/ without the image detection part and is not intended for scanning QR codes from camera.

Decoder is included only for testing purpose, so that depending libraries could run round trip during tests.

Example

Bmp image generation

requires bmp feature

let qr_code = qr_code::QrCode::new(b"Hello").unwrap();
let bmp = qr_code.to_bmp();
bmp.write(std::fs::File::create("test.bmp").unwrap()).unwrap();

Generate this image:

test

Looks small?

Many context supports rescaling mode specific for pixelated images, for example in html image-rendering: pixelated;

As an alternative see method Bmp::mul and Bmp::add_whitespace

Unicode string generation

let qr_code = qr_code::QrCode::new(b"Hello").unwrap();
println!("{}", qr_code.to_string(false, 3));

Generates this output (looks better in terminal):

                           
                           
   █▀▀▀▀▀█  ▀▀▀█ █▀▀▀▀▀█   
   █ ███ █ █ █ ▀ █ ███ █   
   █ ▀▀▀ █ ██ ▄▀ █ ▀▀▀ █   
   ▀▀▀▀▀▀▀ █ █ ▀ ▀▀▀▀▀▀▀   
   ▀ ▀█▀▀▀ ▄▀ █▄▄█▀▀██ ▄   
     █▀▀█▀▄▄▀█▄█▄█▀ ██▀    
    ▀▀▀  ▀▀█▀▀ █  █ ▄  ▀   
   █▀▀▀▀▀█ ▄▀▄▀ ▀ ▄█▄██    
   █ ███ █ █▄ █▄█▄▄▀▄ ▀    
   █ ▀▀▀ █ ▀█ ▄█▄█▀▄▄█     
   ▀▀▀▀▀▀▀ ▀▀  ▀   ▀  ▀    
                           

Minimum Supported Rust Version (MSRV)

Current MSRV is 1.48.0

Commit count: 216

cargo fmt