Crate varint_simd

Source
Expand description

varint_simd is a fast SIMD-accelerated variable-length integer encoder and decoder written in Rust.

For more information, please see the README.

Re-exports§

pub use num::*;

Modules§

decode
encode
num

Enums§

VarIntDecodeError

Functions§

decode
Decodes a single varint from the input slice.
decode_eight_u8_unsafessse3
Decodes four adjacent varints into u8’s simultaneously. Requires SSSE3 support. Does not perform overflow checking and may produce incorrect output.
decode_four_unsafessse3
Decodes four adjacent varints simultaneously. Target types must fit within 16 bytes when varint encoded. Requires SSSE3 support.
decode_len
Decodes only the length of a single variant from the input slice.
decode_len_unsafe
Decodes the length of the next integer
decode_two_unsafessse3
Decodes two adjacent varints simultaneously. Target types must fit within 16 bytes when varint encoded. Requires SSSE3 support.
decode_two_wide_unsafeavx2
Experimental. May have relatively poor performance. Decode two adjacent varints simultaneously from the input pointer. Requires AVX2. Allows for decoding a pair of u64 values. For smaller values, the non-wide variation of this function will probably be faster.
decode_unsafe
Decodes a single varint from the input pointer. Returns a tuple containing the decoded number and the number of bytes read.
decode_zigzag
Convenience function for decoding a single varint in ZigZag format from the input slice. See also: decode
encodesse2
Encodes a single number to a varint. Requires SSE2 support.
encode_to_slicesse2
Encodes a single number to a varint, and writes the resulting data to the slice. Returns the number of bytes written (maximum 10 bytes).
encode_unsafesse2
Encodes a single number to a varint. Requires SSE2 support.
encode_zigzagsse2
Convenience function for encoding a single signed integer in ZigZag format to a varint. See also: encode