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

Enums

Functions

  • Decodes a single varint from the input slice.
  • Decodes four adjacent varints into u8’s simultaneously. Requires SSSE3 support. Does not perform overflow checking and may produce incorrect output.
  • Decodes four adjacent varints simultaneously. Target types must fit within 16 bytes when varint encoded. Requires SSSE3 support.
  • Decodes two adjacent varints simultaneously. Target types must fit within 16 bytes when varint encoded. Requires SSSE3 support.
  • 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.
  • Decodes a single varint from the input pointer. Returns a tuple containing the decoded number and the number of bytes read.
  • 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.
  • Encodes a single number to a varint, and writes the resulting data to the slice. Returns the number of bytes written (maximum 10 bytes).
  • Encodes a single number to a varint. Requires SSE2 support.
  • Convenience function for encoding a single signed integer in ZigZag format to a varint. See also: encode