A fast and flexible C++ library for working with OpenStreetMap data
The Osmium Library has extensive support for all types of OSM entities: nodes, ways, relations, and changesets. It allows reading from and writing to OSM files in XML, PBF, and several other formats, including change files and full history files. Osmium can store OSM data in memory and on disk in various formats and using various indexes. Its easy to use handler interface allows you to quickly write data filtering and conversion functions. Osmium can create WKT, WKB, OGR, GEOS and GeoJSON geometries for easy conversion into many GIS formats and it can assemble multipolygons from ways and relations.
The code is available from GitHub: github.com/osmcode/libosmium.
Start with the README. For more detailed information look at the manual.
The reference documentation contains all the details. It is available for several versions:
Current and past releases can be downloaded from GitHub.
Packages are available for several Linux distributions and macOS:
The Osmium Library is available under the very liberal Boost Software License.