EXPERIMENTAL: Various hacks for zero-allocation stream parsing in Rust.
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
benches Split toy_parsers into an external benchmark suite Oct 4, 2014
src Add some CSV parsing examples. Oct 5, 2014
test_data/fr Fix broken tests Oct 3, 2014
.gitignore Add some CSV parsing examples. Oct 5, 2014
Cargo.toml Fix broken tests Oct 3, 2014
README.md Link to another proposal that might help Dec 15, 2014
UNLICENSE.txt Add a license Oct 3, 2014


EXPERIMENTAL: Zero-Allocation Streaming Parsers in Rust

Here there be hacks. No APIs are stable. Code may not do what the comments claim.

Key goal:

  • Build a StreamingIterator type that can return references to internal state, including as I/O buffers and the output buffers of libraries like flate2. This prevents implementing collect, but why can't we have map, filter and fold?

Target applications:

  • rust-csv.
  • Multicore map/reduce of Snappy-compressed records.
  • Anybody else who needs to iterate over a data stream without allocating.

Random useful things to read:

We beg for help::