A low-level Rust library for parsing OpenStreetMap data in PBF format.
This library provides the smallest possible API to work with OSM PBF files: a blob reader, a block parser and some utilities to read delta or densely encoded data. No other utilities are provided for further data processing (like filtering). There's also no built-in parallelization, however block parsing (which is the most computation-heavy part of the process) can be easily dispatched to multiple threads.
Since most OSM PBFs are ZLib compressed, ZLib decompression support using flate2
is enabled by default. See Cargo's default feature documentation how to disable it.
The library provides a way for the user to support other compression methods by implementing the Decompressor
trait.
print_header
is a very simple example showing how to print the header block of an OSM PBF file.count_wikidata
is a more complete example showing multithreaded parsing, tag and dense node reading.