From OpenStreetMap Wiki
- a fast and flexible C++ toolkit and framework for working with OSM data (libosmium)
- a command line tool that uses the Osmium C++ library (osmium-tool)
- a Python wrapper for the C++ library (PyOsmium)
- a NodeJS wrapper for the C++ library (node-osmium)
With Osmium you can
- Get information about an OSM file
- convert OSM files from one format into another. This includes all XML and PBF formats as well as the OPL format, the o5m format and an easy to read "debug" format.
- Merge and apply OsmChange files to an OSM file (with or without history)
- Extract a geographical area from an OSM data or history file
- Extract data by keys or tags
- Extract data from OSM history files (Planet.osm/full) for a given point in time or a time range
- And many more things...
There are also many more tools based on libosmium, you can find some of them at http://osmcode.org/ .
Note: An old, now deprecated version of Osmium was documented here on the wiki at Osmium/Old version.