mmdb-writer
Make `mmdb` format ip library file which can be read by maxmind official language reader
Decision gist · record as of 2026-08-14
Yes, if you need to create or customize MMDB files in Python. The library is actively maintained, has low install friction, carries a permissive MIT license, and supports current Python versions (3.9–3.13). No known vulnerabilities. Consider the pure-Python performance baseline before committing to large-scale database generation; the Rust beta branch is available if speed becomes a bottleneck.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low friction install with a single runtime dependency (netaddr).
- Active maintenance with recent releases; last commit 2026-06-01 and marked Production/Stable.
License · maintenance · safety
permissive license (permissive) — MIT license (permissive) — you can use, modify, and distribute this package freely with minimal restrictions.
last release 2026-06-01 (74 days) · last repo commit 2026-06-01 · 42 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 534,139 downloads/mo, #6,138 on PyPI
Alternatives
Verify before relying
pip install mmdb_writer
from netaddr import IPSet
from mmdb_writer import MMDBWriter
writer = MMDBWriter()
writer.insert_network(IPSet(['1.1.0.0/24']), {'country': 'US'})
writer.to_db_file('output.mmdb')- Whether the pure-Python version's performance is acceptable for your use case, given the Rust beta branch claims 6–8× speedup.
- Compatibility guarantees with specific MaxMind reader versions across different languages.
What it is and what it does
mmdb-writer is a Python library that creates MaxMind DB (MMDB) format files—the binary database format used by MaxMind's GeoIP and other IP-based lookup services. It takes IP networks (specified using netaddr's IPSet) and associates them with arbitrary data (country codes, ISP names, etc.), then writes them to a .mmdb file that can be read by MaxMind's official readers in any supported language.
The library handles MMDB's type system, which includes multiple integer and float types (int32, uint16, uint32, uint64, uint128, float, double). Since Python has only one integer and one float type, mmdb-writer lets you specify how integers should be encoded (auto-detection by value size, or explicit types like i32, u16, u32, u64, u128) and provides type wrappers (MmdbI32, MmdbF32) for fine-grained control. This is especially important when Java clients will read the resulting database, as Java's deserialization depends on correct MMDB type metadata.
Use it for
- Build a custom IP geolocation database by mapping IP ranges to country codes, cities, or ISP information.
- Create a private IP-to-metadata lookup service for internal network management or security applications.
- Convert CSV or other structured IP data sources into MMDB format for distribution to MaxMind reader clients.
- Generate test MMDB files with specific IP ranges and data for unit testing geolocation-dependent code.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need to create or customize MMDB files in Python.
The library is actively maintained, has low install friction, carries a permissive MIT license, and supports current Python versions (3.9–3.13). No known vulnerabilities. Consider the pure-Python performance baseline before committing to large-scale database generation; the Rust beta branch is available if speed becomes a bottleneck.
Install
mmdb-writer on PyPI
Before you install
Low friction install with a single runtime dependency (netaddr). Active maintenance with recent releases; last commit 2026-06-01 and marked Production/Stable.
License in practice
MIT license (permissive) — you can use, modify, and distribute this package freely with minimal restrictions.
Quickstart
pip install mmdb_writer
from netaddr import IPSet
from mmdb_writer import MMDBWriter
writer = MMDBWriter()
writer.insert_network(IPSet(['1.1.0.0/24']), {'country': 'US'})
writer.to_db_file('output.mmdb')
Verify before relying
- Whether the pure-Python version's performance is acceptable for your use case, given the Rust beta branch claims 6–8× speedup.
- Compatibility guarantees with specific MaxMind reader versions across different languages.
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagenetaddr |
| Maintenance | Actively maintained 74 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 534,139 / month, #6,138 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Software Development :: Build Tools |
Evidence: mmdb_writer-0.2.7-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “mmdb file generator”
- mmdb-writerGenerates MaxMind DB (MMDB) format files from IP networks and…
- iterable-ioWraps iterables (generators, lists, etc.) as file-like objects so…
- properdocsProperDocs is a static site generator that converts Markdown…
Give your agent the search over MCP, or paste the wish link into any chat.
More Build Tools packages
Provides reusable utilities for Python packaging interoperability, including version handling, specifiers, markers, requirements, tags, and metadata parsing according to standards like PEP 440 and PEP 425.
Wraps any iterable to display a real-time progress bar in the terminal or Jupyter notebook, showing iteration count, elapsed time, and estimated time remaining.
pip is the standard installer for Python packages, enabling you to download and install packages from the Python Package Index and other indexes into your Python environment.
Hatchling is a standards-compliant Python build backend that handles packaging, metadata, and distribution of Python projects when configured in a project's pyproject.toml file.
Generates Python gRPC service stubs and message classes from Protocol Buffer definitions, enabling developers to build gRPC clients and servers.
pre-commit is a framework for installing and running git hooks written in any language before commits are made, automating code quality and validation checks across multi-language projects.
Install it if your team needs consistent, automated validation at commit time.
See also maxminddb · maxminddb-geolite2 · geoip2 · geoip2-tools · types-maxminddb · IP2Location · geoip2fast · mpxj · minfraud · IPy