Catalog PyPI
Back to packageRELEASE DETAILS

1.3.2

PyPI

addok

Search engine for address. Only address.

addressgeocodingopenstreetmap
Published27 Nov 2025
Direct dependencies15
Transitive dependenciesNot calculated

README

Version 1.3.2 documentation

🏠 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.

PyPi version Coverage Status

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:

Discover all plugins


🌟 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


📄 License

Addok is released under the MIT License. Free to use, modify, and distribute.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 16

Native requirements
15 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
falcon
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
falcon==4.0.2runtime
hashids
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
hashids==1.3.1runtime
editdistance
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
editdistance==0.8.1runtime
ngram
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
ngram==4.0.3runtime
progressist
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
progressist==0.1.0runtime
python-geohash
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
python-geohash==0.8.5runtime
redis
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
redis==6.4.0runtime
unidecode
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
unidecode==1.4.0runtime
gnureadline
Environment
{
  "extras": "",
  "marker": "sys_platform == \"darwin\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
gnureadline==8.2.13; sys_platform == "darwin"runtime
hiredis
Environment
{
  "extras": "",
  "marker": "extra == \"perf\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
hiredis==3.3.0; extra == "perf"runtime
pytest
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
pytest~=8.3; extra == "dev"runtime
pytest-cov
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
pytest-cov~=6.1; extra == "dev"runtime
mkdocs
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
mkdocs==1.4.3; extra == "dev"runtime
build
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
build~=1.2; extra == "dev"runtime
twine
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
twine==6.1.0; extra == "dev"runtime
hiredis
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
hiredis==3.3.0; extra == "dev"runtime

Distribution files

2 collected
addok-1.3.2-py3-none-any.whl

bdist_wheel · 48.69 KB · Python py3

Source file
addok-1.3.2.tar.gz

sdist · 60.32 KB · Python source

Source file

Repository

PENDING
addok/addok

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 19:20 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:3387dd065e0ae652cff79e5108c0e6626c920b4ae536b3f43c8ced45ac3dad7a

Other collected versions

View all collected versions →