Imposm.geocoder is a geocoder for OpenStreetMap data. It is developed as a libary and can be used to convert addresses into coordinates.
Right now the geocoder is still in an early beta state and some code is optimized for German addresses. Be aware that the API will change in the future.
It depends on an PostgreSQL/PostGIS database and the import tool Imposm. It is developed and supported by Omniscale. The libary runs on Linux or Mac OS X and is released as open source under the Apache License 2.0.
The source code is available at: https://bitbucket.org/quiqua/imposm.geocoder/
You can report any issues at: https://bitbucket.org/quiqua/imposm.geocoder/issues