Search engine for address. Only address.
Project description
🏠 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file addok-1.3.2.tar.gz.
File metadata
- Download URL: addok-1.3.2.tar.gz
- Upload date:
- Size: 61.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a4fcaa222763958c3312086ba9a32414ec654a4776176cc0521f7a0a500acd01
|
|
| MD5 |
be8d1e1b5193613bfa96e1a95299a910
|
|
| BLAKE2b-256 |
2150339807ace229ade4468c9f5aa705bfd46e3cbefd344af3a8a74a39c341df
|
File details
Details for the file addok-1.3.2-py3-none-any.whl.
File metadata
- Download URL: addok-1.3.2-py3-none-any.whl
- Upload date:
- Size: 49.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2043229367f3a9706a2997b64e2ccb984caa39082f5070d4c454fbdb545bb22f
|
|
| MD5 |
f62568ac7e1594f1f778c73293989a4c
|
|
| BLAKE2b-256 |
f1e4ec227958344f3d1c429d0ebd7f991f2bad00b98ee6f5e5cb2c61b2910630
|