Skip to content

Commit 16c01b8

Browse files
committed
release: versoin bump to 0.8.5
* supports `encoding_rs` as a primary characterset backend * supports deocding DX Film Edge symbols * reduces allocations in the heap for many 1d barcodes
1 parent f956450 commit 16c01b8

2 files changed

Lines changed: 24 additions & 6 deletions

File tree

Cargo.toml

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "rxing"
3-
version = "0.8.4"
3+
version = "0.8.5"
44
description="A rust port of the zxing barcode library."
55
license="Apache-2.0"
66
repository="https://github.com/rxing-core/rxing"
@@ -17,19 +17,20 @@ rust-version = "1.85"
1717
regex = "1.12"
1818
fancy-regex = "0.17"
1919
once_cell = "1.21"
20-
encoding = "0.2"
20+
encoding_rs = { version = "0.8", optional = true }
21+
encoding = { version = "0.2", optional = true }
2122
urlencoding = "2.1"
2223
uriparse = "0.6"
2324
chrono = { version = "0.4", default-features = false, features = ["clock", "std", "oldtime"] }
2425
chrono-tz = "0.10"
25-
image = {version = "0.25", optional = true, default-features = false}
26+
image = {version = "=0.25.8", optional = true, default-features = false}
2627
imageproc = {version = "0.25", optional = true}
2728
unicode-segmentation = "1.12"
2829
codepage-437 = "0.1"
2930
rxing-one-d-proc-derive = {version = "0.8", path ="./crates/one-d-proc-derive"}
3031
num = "0.4"
3132
svg = {version = "0.18", optional = true}
32-
resvg = {version = "0.47", optional = true, default-features=false}
33+
resvg = {version = "0.45", optional = true, default-features=false}
3334
serde = { version = "1", features = ["derive", "rc"], optional = true }
3435
thiserror = "2.0"
3536
multimap = "0.10"
@@ -41,7 +42,7 @@ rand = "0.10"
4142
criterion = "0.7"
4243

4344
[features]
44-
default = ["image", "client_support", "image_formats", "serde"]
45+
default = ["image", "client_support", "image_formats", "serde", "encoding_rs"]
4546
#/// Enable features required for image manipulation and reading.
4647
image = ["dep:image", "dep:imageproc"]
4748
image_formats = [
@@ -63,6 +64,12 @@ image_formats = [
6364
"image/ff",
6465
]
6566

67+
#/// Enable support for encoding_rs (modern, efficient)
68+
encoding_rs = ["dep:encoding_rs"]
69+
70+
#/// Enable legacy encoding (original behavior)
71+
legacy_encoding = ["dep:encoding"]
72+
6673
#/// Allows the ability to force ISO/IED 18004 compliance.
6774
#/// Leave disabled unless specificially needed.
6875
allow_forced_iso_ied_18004_compliance = []

README.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ All barcode formats are tested and functioning in their current state against cu
4242
| telepen | complete | yes | yes |
4343
| micro qr | complete | no | yes |
4444
| rMQR | complete | no | yes |
45+
| dxFilm | complete | no | yes |
4546

4647
Please note that currently UPC/EAN Extension 2/5 is supported.
4748

@@ -60,7 +61,10 @@ The following feature flags are available:
6061

6162
This is not used by any of the helper functions, you must specifically use it while setting up a new decoder. The `OtsuLevelBinarizer` is not well tested and it does *not* pass the current test suite. Consider this only if you know why you would want to use it. In many cases, the standard binarizer is likely better. If you have a very specific use case, and you know what your incoming data will resemble, you should consider implementing your own `Binarizer` and using that instead.
6263

63-
The default feature set includes the `image`, `client_support`, and `image_formats` features mentioned above.
64+
* `encoding_rs`: Enabled by default. Uses the modern `encoding_rs` crate for high-performance, WHATWG-compliant character encoding support.
65+
* `legacy_encoding`: Provides the original encoding behavior using the legacy `encoding` crate. Use this if you require exact compatibility with older versions or specific non-standard character mappings.
66+
67+
The default feature set includes the `image`, `client_support`, `image_formats`, and `encoding_rs` features mentioned above.
6468

6569
## Incomplete
6670
The library has only been thurougly tested with the `BufferedImageLuminanceSource` source format. Using any other
@@ -86,6 +90,13 @@ fn main() {
8690
```
8791

8892
## Latest Release Notes
93+
* *v0.8.5* -> DX Film Edge Support added (decode only). Also adds several enhancements to performance and memory.
94+
95+
The default character encoding backend has changed to the more modern `encoding_rs`. This should bring some slight
96+
performance improvements and better tracking of modern fixes and new encodings. All test currently pass without
97+
issue using the new backend, but if you encounter any issues please change back to the legacy backend using the
98+
`legacy_encoding` feature flag.
99+
89100
* *v0.6.1* -> Initial support for immutable symbol readers. Fixed an issue with the rss_expanded reader.
90101

91102
Immutable readers: Many 2d readers now implement the `ImmutableReader` trait. This allows them to be called using the

0 commit comments

Comments
 (0)