This is a port of the ZXing (https://github.com/zxing/zxing) java barcode library to pure rust. Conversion was done by hand. Original license resides with the authors of zxing.
Porting of the testing library is incomplete. Currently all positive tests are implemented. Negative verfication tests are not implemented.
Porting was done with the rust language in mind, though some parts may resemble java more directly than a proper clean-sheet rust implementation. The process of "rustifying" the code is ongoing.
If you're looking for a CLI interface into the library, please see rxing-cli.
All barcode formats are tested and functioning in their current state against current tests.
| Symbology | Status | | --- | --- | | aztec | complete | | datamatrix | complete | | maxicode | complete | | pdf417 | complete | | qrcode | complete | | coda | complete | | code 39 | complete | | code 93 | complete | | code 128 | complete | | itf | complete | | ean 8 | complete | | ean 13 | complete | | upc a | complete | | upc e | complete |
The library has only been thurougly tested with the BufferedImageLuminanceSource
source format. Using any other
source is currently experimental and may result in unexpected or undefined outputs. This means that the feature flag
used to enable the use of the image
crate is currently on by default. Turning it off may result in unexpected results.
```rust use rxing;
fn main() { let filename = "testimage.jpg";
let results = rxing::helpers::detect_multiple_in_file(file_name).expect("decodes");
for result in results {
println!("{} -> {}", result.getBarcodeFormat(), result.getText())
}
} ```
v0.2.14 -> Support for more image output formats, many rustification changes to the codebase.
If you were using very deep, specific functions in the encoder/decoder sections this may require a function rename. For instance qrcode::encoder::encoder
is now qrcode::encoder::qrcode_encoder
.
v0.2.10 -> Fix major issue with qrcode generation.
Performance is low for GenericMultipleBarcodeReader.
Currently tracking zxing 3.5.1