base94-simd
SIMD-accelerated base94 codec: encodes arbitrary binary data into the
printable ASCII range 0x20..=0x7E (94 symbols), with an optional key-mixing
step (kf) and a base94 digit encoding for integers.
Bytes are key-mixed ((b - kf) mod 256); mixed values >= 93 escape into two
chars (0x7D/0x7E leader + follower), so output is at most twice the input
size. With kf = 0 the mixing is the identity.
Backends
- x86_64: SSSE3 kernels over 16-byte blocks (runtime-detected; SSE2 helpers for the validity scan and length computation).
- aarch64: baseline NEON kernels over 16-byte blocks (
vqtbl1shares the compaction LUT with the pshufb backend; no runtime detection needed). - other targets: portable scalar path (the reference definition).
All backends are bit-exact, pinned by fuzzing against the scalar reference.
let mut encoded = Vecnew;
encode_into;
assert!;
let mut decoded = Vecnew;
decode_into.unwrap;
assert_eq!;