openvenues/libpostal
FreeA C library for parsing/normalizing street addresses around the world. Powered by statistical NLP and open geo data.
About openvenues/libpostal
libpostal is a C library for parsing and normalizing street addresses around the world using statistical natural language processing (NLP) and open geographic data. It is designed to convert free-form human-readable addresses into clean, normalized forms suitable for machine comparison and full-text indexing. While not a full geocoder itself, libpostal serves as a preprocessing step to make geocoding applications smarter, simpler, and more consistent internationally. The core library is written in pure C and has officially supported language bindings for Python, Ruby, Go, Java, PHP, and NodeJS. It is open source and freely available on GitHub under the openvenues organization.
Key Features
Pros & Cons
- Free and open source under a permissive license
- Handles addresses from many countries and languages
- Uses statistical NLP for robust parsing of varied formats
- Well-documented with official bindings for multiple programming languages
- Improves consistency in geocoding pipelines
- Active community and sponsorship support
- Not a standalone geocoder – requires integration with other services
- Installation requires compilation from source (C library) and dependencies
- Requires significant memory and disk space for training data
- Limited to address text processing; no geographic coordinate output
- May have less support for very rare address formats