8 stable releases
1.5.0 | May 18, 2023 |
---|---|
1.4.0 | May 15, 2023 |
#47 in Value formatting
1,228 downloads per month
39KB
645 lines
const-hex
This crate provides a fast conversion of byte arrays to hexadecimal strings, both at compile time, and at run time.
Extends the hex
crate's implementation with const-eval, a
const-generics formatting buffer, similar to itoa
's, and more.
Version requirement: rustc 1.64+
Performance
This crate is ~10 times faster than hex
in encoding, and 30+ times faster
than libstd
in formatting.
You can run the following benchmarks with cargo bench
on a nightly compiler.
test encode_const_hex::bench1_32 ... bench: 1 ns/iter (+/- 0)
test encode_const_hex::bench2_128 ... bench: 5 ns/iter (+/- 0)
test encode_const_hex::bench3_4096 ... bench: 204 ns/iter (+/- 9)
test encode_hex::bench1_32 ... bench: 15 ns/iter (+/- 1)
test encode_hex::bench2_128 ... bench: 60 ns/iter (+/- 2)
test encode_hex::bench3_4096 ... bench: 1,703 ns/iter (+/- 50)
test format_const_hex::bench1_32 ... bench: 15 ns/iter (+/- 0)
test format_const_hex::bench2_128 ... bench: 20 ns/iter (+/- 0)
test format_const_hex::bench3_4096 ... bench: 380 ns/iter (+/- 9)
test format_std::bench1_32 ... bench: 470 ns/iter (+/- 4)
test format_std::bench2_128 ... bench: 1,961 ns/iter (+/- 17)
test format_std::bench3_4096 ... bench: 61,688 ns/iter (+/- 1,994)
Acknowledgements
hex
for the initial encoding/decoding implementations- dtolnay/itoa for the initial crate/library API layout
License
Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Dependencies
~80KB