hydraters
Hydrate Python dictionaries with Rust.
What it is and what it does
Hydraters is a Python package that merges nested dictionaries by delegating the merge operation to Rust code, trading a compiled dependency for speed. It takes a base dictionary and an item dictionary, recursively combines them (with nested dicts merged rather than replaced), and returns the result. The package also provides a DO_NOT_MERGE_MARKER constant and a strip_unmatched_markers function to clean up keys marked for exclusion—useful for workflows where certain fields should be removed before or after hydration.
The package was extracted from the pgstac project, where benchmarking showed that Rust-based dictionary merging significantly outperforms pure Python. It has no runtime dependencies beyond the compiled extension itself, and supports modern Python versions (3.10–3.14) across CPython and PyPy implementations on Linux, macOS, Windows, and musl systems.
Use it for:
- Merge large nested JSON or dictionary structures in data pipelines where performance matters, such as in geospatial or catalog systems.
- Combine base configurations with overrides or patches while preserving nested structure and avoiding key replacement.
- Clean up dictionary entries marked with DO_NOT_MERGE_MARKER before serialization or storage.
- Accelerate dictionary operations in applications that process many merge operations per second.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Merges nested Python dictionaries efficiently by delegating the merge logic to Rust, with support for marking keys that should not be merged.
Yes, if you need fast nested dictionary merging and are comfortable with a young package (first release November 2024, version 0.1.4). The compiled wheels install without friction on common platforms, there are no runtime dependencies, and the code is actively maintained. However, verify the license status (metadata shows unclear treatment despite the description claiming MIT) and assess whether the early version number and small user base suit your stability requirements.
Install
hydraters on PyPI
pip
pip install hydratersuv
uv add hydraterspoetry
poetry add hydratersInstalling hydraters
Before you install
Medium install friction due to compiled wheels; the package provides prebuilt binaries for Python 3.10–3.14 across Linux (multiple architectures), macOS, Windows, and musl-based systems, so installation should succeed without compilation on most platforms. Repository is active with a recent commit.
License in practice
License treatment is unclear—the description states MIT, but the metadata fields license_raw and license_spdx are both null. Verify the actual license terms before relying on this package in a commercial or restricted-license context.
Quickstart
import hydraters
base = {"a": "first", "b": "second", "c": {"d": "third"}}
item = {"c": {"e": "fourth", "f": "fifth"}}
result = hydraters.hydrate(base, item)
# result == {"a": "first", "b": "second", "c": {"d": "third", "e": "fourth", "f": "fifth"}}
Requires Python 3.10 or later; no runtime dependencies, but installation requires prebuilt wheels or a Rust toolchain to compile.
Verify before relying
- Whether the package is suitable for production use given its early version (0.1.4) and small repository footprint (8 stars).
- Performance characteristics compared to pure-Python alternatives in typical use cases.
- Stability and API compatibility guarantees across minor versions.
Package facts
| License | not declared (unclear) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 79 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 217,047/month — #9,367 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: hydraters-0.1.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; hydraters-0.1.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; hydraters-0.1.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl; hydraters-0.1.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl; hydraters-0.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; hydraters-0.1.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl; hydraters-0.1.4-cp310-cp310-musllinux_1_2_aarch64.whl; hydraters-0.1.4-cp310-cp310-musllinux_1_2_armv7l.whl; hydraters-0.1.4-cp310-cp310-musllinux_1_2_i686.whl; hydraters-0.1.4-cp310-cp310-musllinux_1_2_x86_64.whl; hydraters-0.1.4-cp310-cp310-win_amd64.whl; hydraters-0.1.4-cp311-cp311-macosx_10_12_x86_64.whl; hydraters-0.1.4-cp311-cp311-macosx_11_0_arm64.whl; hydraters-0.1.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; hydraters-0.1.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; hydraters-0.1.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl; hydraters-0.1.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl; hydraters-0.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; hydraters-0.1.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl; hydraters-0.1.4-cp311-cp311-musllinux_1_2_aarch64.whl
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
deepmergeMerges nested Python data structures (dicts,…
permissive · top 5,000 on PyPI
pluckyPlucky provides concise, safe access to deeply…
permissive · top 15,000 on PyPI
flatdictFlattens nested dictionaries into single-level…
permissive · top 5,000 on PyPI
dict-recursive-updateRecursively merges one dictionary into another,…
permissive · top 15,000 on PyPI
mergedeepMerges nested dictionaries recursively,…
permissive · top 1,000 on PyPI
deepdiff6DeepDiff recursively compares two Python…
permissive · top 15,000 on PyPI
super-collectionsConverts nested JSON and YAML data into Python…
permissive · top 5,000 on PyPI
ormar-utilsProvides Rust-accelerated implementations of…
permissive · top 15,000 on PyPI
uuid-utilsFast UUID generation and manipulation for all…
permissive · top 1,000 on PyPI