libpostal is a C library for parsing/normalizing street addresses around the world
Addresses and the locations they represent are essential for any application dealing with maps (place search, transportation, on-demand/delivery services, check-ins, reviews). Yet even the simplest addresses are packed with local conventions, abbreviations and often highly ambiguous, making them difficult to index/query effectively with traditional full-text search engines. Libpostal helps convert the free-form addresses/places that humans use into clean, parsed, normalized forms suitable for machine comparison and full-text indexing.
The core library is written in pure C. Language bindings for Python, Ruby, Go, Java, PHP, and NodeJS are officially supported and it's easy to write bindings in other languages.