Osmium is a fast and flexible C++ toolkit and framework for working with OSM data.
You can find more information about Osmium at http://osmcode.org/osmium/
With Osmium you can
- Get information about an OSM XML file
- convert OSM files from one format into another. This include all XML and PBF formats as well a new OPL format
- Merge and apply OsmChange files to an OSM file (with or without history)
- Extract data from OSM history files (Planet.osm/full) for a given point in time or a time range
Note: An old, now deprecated version of Osmium was documented here on the wiki at Osmium/Old version.