🏠 Addok
A blazing fast address search engine. Made for addresses, optimized for addresses, nothing but addresses.
Addok is a powerful geocoding engine that indexes your address data and exposes it through a clean HTTP API. Built with performance in mind, it handles typos, autocomplete, and filters with ease.
Requirements: Python 3.9–3.14 • Redis 7.2–8.0
✨ Features
- 🚀 Fast: Handles thousands of requests per second
- 🔍 Smart search: Fuzzy matching, typo-tolerant, autocomplete
- 🌍 Geocoding & Reverse geocoding: From text to coordinates and back
- 📦 Batch processing: Import and geocode CSV files
- 🔌 Extensible: Plugin system for custom needs
- 🎯 Filtered search: Query by postcode, city, region, or custom filters
- 🗺️ Geographic bias: Prioritize results near a location
- 🛠️ Debug shell: Interactive shell for testing and debugging
- 📊 GeoJSON output: Standard compliant API responses
🎬 Quick Example
Once installed and your data imported, searching for an address is as simple as:
curl "http://localhost:7878/search/?q=baker+street+221b"
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-0.158434, 51.523767]
},
"properties": {
"label": "221B Baker Street, London NW1 6XE",
"score": 0.95,
"housenumber": "221B",
"street": "Baker Street",
"postcode": "NW1 6XE",
"city": "London"
}
}
]
}
🚀 Getting Started
Installation
pip install addok
Import your data
addok batch your_addresses.ndjson
addok ngrams
Start the server
addok serve
Your API is now running at http://localhost:7878 🎉
Check out the full documentation for detailed instructions, configuration options, and advanced features.
🔌 Plugins
Extend Addok with plugins for your specific needs:
- addok-fr: French language support
- addok-csv: Batch CSV geocoding via HTTP
- addok-trigrams: Trigram-based indexing
- addok-sqlite-store: SQLite storage backend
- addok-psql: PostgreSQL storage backend
🌟 Production Ready
Addok powers the official French national address database with:
- 26+ million addresses indexed
- ~2000 searches/second throughput
- ~15 minutes full import time
👉 See it in action with the French address database demo
💡 Learn More
- 📖 Documentation
- 🎓 Tutorial
- 💬 Community Forum (French & English welcome)
- 🐛 Report an issue
📄 License
Addok is released under the MIT License. Free to use, modify, and distribute.
Metadata
Release files for addok 1.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| addok-1.3.2.tar.gz | 61.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| addok-1.3.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 111.6 kB
Release files / addok-1.3.2.tar.gz
| Download URL | addok-1.3.2.tar.gz |
|---|---|
| Size | 61.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a4fcaa222763958c3312086ba9a32414ec654a4776176cc0521f7a0a500acd01
|
|
BLAKE2b-256 checksum How to use checksums |
2150339807ace229ade4468c9f5aa705bfd46e3cbefd344af3a8a74a39c341df
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.2
|
Release files / addok-1.3.2-py3-none-any.whl
| Download URL | addok-1.3.2-py3-none-any.whl |
|---|---|
| Size | 49.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2043229367f3a9706a2997b64e2ccb984caa39082f5070d4c454fbdb545bb22f
|
|
BLAKE2b-256 checksum How to use checksums |
f1e4ec227958344f3d1c429d0ebd7f991f2bad00b98ee6f5e5cb2c61b2910630
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.2
|
Security for addok 1.3.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.