--- id: postal version: "1.1.11" license: MIT License license_treatment: permissive maintenance: aging --- # postal — Python bindings to libpostal for fast international address parsing/normalization License: permissive · Maintenance: aging · Downloads: 84.3K/mo ## What it is and what it does postal is a Python wrapper around libpostal, a standalone C library for parsing and normalizing street addresses in any language or format worldwide. It provides two main functions: expand_address() generates normalized variations of an address (useful for fuzzy matching), and parse_address() breaks an address into its semantic components (street, city, country, postal code, etc.). The package is designed for developers building geocoding pipelines, address validation systems, or search indexing that must handle international addresses. Installation requires compiling libpostal from source with system build tools and allocating disk space for linguistic and geographic data. The bindings are CPython-only and support Python 3.5 and later. Use it for: - Normalize and standardize address data from multiple sources before geocoding or database storage - Extract address components (street, city, postal code) from unstructured text for form validation or data enrichment - Generate address variations for fuzzy matching in search or deduplication workflows - Preprocess international addresses in multiple languages for mapping or logistics applications - Index addresses in search engines by expanding and normalizing variants ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Python bindings to libpostal, a C library for parsing and normalizing street addresses worldwide, supporting address expansion and component extraction. Yes, if you need robust international address parsing and can handle the compilation overhead. The high install friction (system C library build, platform-specific setup, several GB data) is a real cost, but the package is stable, permissive-licensed, and solves a hard problem well. Not suitable for environments where you cannot compile C libraries or manage system dependencies. Maintenance is aging but not abandoned; last release was recent. ## Install pip install postal uv add postal poetry add postal ## Installing postal Before you install: High install friction: requires compiling the libpostal C library before the Python bindings can work. Needs system build tools (autoconf, automake, libtool, pkg-config) and several GB of disk space for libpostal's data. Platform-specific setup is required (Ubuntu/Debian, CentOS/RHEL, macOS, or Windows with MSYS2). Last release was 289 days ago; maintenance is aging. License in practice: MIT License (permissive). You can use, modify, and distribute this package freely in commercial or private projects, with minimal restrictions. Quickstart: # Install libpostal C library first (see platform-specific instructions in docs) # Then: pip install postal from postal.expand import expand_address expand_address('Quatre vingt douze Ave des Champs-Élysées') from postal.parser import parse_address parse_address('The Book Club 100-106 Leonard St, Shoreditch, London') libpostal C library must be compiled and installed system-wide before pip install postal will work. Requires build tools (autoconf, automake, libtool, pkg-config) and several GB of disk space. CPython only; PyPy not supported. Verify before relying: - Whether libpostal data files are automatically downloaded during installation or must be manually configured - Current state of Windows support and whether MSYS2 setup remains the recommended path - Performance characteristics and typical latency for address parsing operations - Whether the package works with modern Python versions beyond 3.5 despite unspecified support ## Package facts - License: MIT License (permissive) - Python support: unspecified - Install friction: high - Maintenance: aging - Downloads: 84.3K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags address parsing, address normalization, international address parser, street address extraction, address standardization, geocoding preprocessing, address components, address-parsing, internationalization, c-bindings [View on SkillFed](https://skillfed.io/packages/postal) · [View on PyPI](https://pypi.org/project/postal/)