fashex - fast hexadecimal encoding and decoding
Hexadecimal string encoding and decoding with best-effort SIMD acceleration.
Highlights
- Best-effort SIMD acceleration.
- Small, focused public APIs.
- APIs that work in const contexts.
- Unlike crates
const-hex,faster-hex, etc., this crate accepts uninitialized output buffers (MaybeUninit<u8>).
Performance
This crate offers performance comparable to const-hex or hex-simd on x86 / x86_64 architectures.
For benchmark results, please refer to BENCHMARK.md.
Disclaimer
Although all tests are passing and hours of fuzzing show no failures, latent bugs may still exist in the code.
- The SIMD-accelerated code paths for
x86/x86_64architecture are well tested and fuzzed. - The SIMD-accelerated code paths for
aarch64architecture are tested and fuzzed. - The SIMD-accelerated code paths for
loongarch64architecture have not been tested or fuzzed on real hardware.
If you find any bugs, please report them.
Acknowledgements
This crate is inspired by the following repositories:
const-hex, SPDX-License-Identifier: MIT OR Apache-2.0hex-simd, SPDX-License-Identifier: MITfaster-hex, SPDX-License-Identifier: MIT OR Apache-2.0