#llvm #parsing #binary #encoding

llvm-bitcursor

A no-frills bitstream cursor library for Rust

9 releases

0.0.3 Jan 28, 2022
0.0.2 Nov 18, 2021
0.0.2-rc.10 Aug 11, 2021
0.0.2-rc.3 Jul 25, 2021

#837 in Encoding

48 downloads per month
Used in 2 crates (via llvm-bitstream)

MIT license

32KB
564 lines

llvm-bitcursor

Crates.io Documentation

A no-frills cursor library that supports reading unaligned fields from a bitstream.

This library primarily exists to provide low-level support for the task of parsing LLVM's bitstream format. If you're looking for a general purpose bitvector handling library, try bitvec or bit-vec.

Features:

  • No-copy, all cursor state is internal
  • Support for LLVM's VBR encoding (requires the vbr feature)
  • 100% safe Rust, with #![forbid(unsafe_code)]
  • No use of unwrap, expect, or panic

Anti-features:

  • Not a general purpose bitvector/bitstring handling library
  • Probably not very fast
  • Doesn't care about bit order (always LSB-first)

Dependencies

~0.9–1.4MB
~33K SLoC