🏠 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.
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 | |
|---|---|---|---|
| addok-1.3.2.tar.gz | 61.8 kB | 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
|