Look for all opensource applications at http://wiki.openstreetmap.org/wiki/Routing including all sub pages.

geocoding is a field of http://wiki.openstreetmap.org/wiki/Nominatim

and as a developer you should also study http://wiki.openstreetmap.org/wiki/Develop with its subpage http://wiki.openstreetmap.org/wiki/Develop/Frameworks

ask for more infos if you proceed with a certain app …