#5959th of 60 in Data and scraping for AI
libpostal
C library for parsing and normalizing street addresses worldwide
- Stars
- 4.9k
- License
- MIT
- Last commit
- Dec 2025
- Last release
- May 2018
- Language
- C
4,758 on 21 Apr 20264,923 on 10 Nov 2026
From GitHub's daily star counts.
Checked on GitHub.
Overview
libpostal is a C library that parses free-form street addresses into components and normalizes them for matching and full-text indexing. The parser is a Conditional Random Field model trained on over 1 billion addresses from OpenStreetMap and OpenAddresses. It is not a geocoder, but works as a preprocessing step for one. Bindings exist for Python, Ruby, Go, Java, PHP and NodeJS.
Who it is for: Developers adding address parsing to geocoding and data pipelines
Strengths
- Trained on over 1 billion addresses covering every inhabited country
- Pure C core with officially supported bindings for six languages
- Runs fully on CPU, offline, with pkg-config support
- Optional Senzing model reports 4.3% better parsing on its test set
Weaknesses
- Model data needs a few GB of disk (about 1.8GB default, 2.2GB Senzing)
- Last tagged release is from 2018, though commits continue
- Not a geocoder; it only parses and normalizes address strings
- Source build needs autotools; Windows requires MSys2/MinGW; M1 needs --disable-sse2
What it needs
- no GPU
- Needs autoconf, automake, libtool, pkg-config, curl
- Models: Conditional Random Field address parser, Senzing alternative model
What changed
- v1.0.0 ↗ (opens in a new tab)Breaking
“Every function, struct, constant, etc. defined in the public header (libpostal.h) now uses a "libpostal" prefix . This affects all bindings that call the C API. The bindings that are part of this Git…”
From the release notes. No flag means the note does not say so, not that the upgrade is safe.
Also in Data and scraping for AI
See all 60| Rank | Project | Score |
|---|---|---|
| 1 | doclingPython library that converts PDFs, Office files and more into structured text | 92 out of 100 |
| 2 | mineruParses PDFs, images and Office files into Markdown and structured JSON | 91 out of 100 |
| 3 | opendataloader-pdfPDF parser that outputs Markdown, JSON with bounding boxes, and Tagged PDF | 91 out of 100 |
| #4 | agent-reachCLI that gives coding agents read access to login-gated and Chinese web platforms | 89 out of 100 |
| #5 | markitdownPython library and CLI that converts office files, PDFs and audio to Markdown | 87 out of 100 |