immutabledict
Immutable wrapper around dictionaries (a fork of frozendict)
Decision gist · record as of 2026-08-14
Yes. immutabledict is production-stable, actively maintained, has zero dependencies, carries a permissive MIT license, and solves a real need for immutable dict semantics. It ranks in the top 1000 PyPI packages by download volume and has no known security vulnerabilities. Install it when you need immutable dictionaries in your codebase.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low install friction with no runtime dependencies.
- Actively maintained with a recent release (2026-02-15), last commit on 2026-08-10, and marked as Production/Stable.
License · maintenance · safety
MIT (permissive) — MIT license (permissive) means you can use, modify, and distribute this package freely in both open-source and commercial projects with minimal restrictions.
last release 2026-02-15 (180 days) · last repo commit 2026-08-10 · 54 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 23,544,354 downloads/mo, #941 on PyPI
Alternatives
Verify before relying
pip install immutabledict
from immutabledict import immutabledict
my_dict = immutabledict({"a": "value", "b": "other_value"})
print(my_dict["a"]) # Prints "value"- Performance characteristics compared to regular dicts or alternative immutable dict implementations
- Memory overhead of the immutabledict wrapper relative to standard dict
- Specific use cases where PEP 584 union operators provide practical benefit
What it is and what it does
immutabledict is a pure Python wrapper that makes dictionaries immutable while preserving the full mapping interface. It allows you to use immutable dicts as drop-in replacements for standard dicts in code paths where you need to prevent accidental modification or use dicts as keys in sets or other dicts (since immutable objects can be hashable). The package supports modern Python versions (3.8 through 3.14) and implements standard dict operations like indexing and iteration, plus PEP 584 union operators for combining immutable dicts.
The library is a fork of frozendict, maintained as a pure Python alternative with MIT licensing. It has no runtime dependencies, making installation straightforward. The package includes methods for set operations (set, delete, discard) and maintains compatibility with the standard dict copy() signature.
Use it for
- Use as dictionary keys in sets or as dict values where immutability prevents accidental modification
- Configuration objects that should not be modified after initialization
- Function return values where you want to guarantee the caller cannot alter the returned data
- Caching scenarios where dict keys must be hashable and immutable
- Multi-threaded code where shared data structures need protection from concurrent modification
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
immutabledict is production-stable, actively maintained, has zero dependencies, carries a permissive MIT license, and solves a real need for immutable dict semantics. It ranks in the top 1000 PyPI packages by download volume and has no known security vulnerabilities. Install it when you need immutable dictionaries in your codebase.
Install
immutabledict on PyPI
Before you install
Low install friction with no runtime dependencies. Actively maintained with a recent release (2026-02-15), last commit on 2026-08-10, and marked as Production/Stable.
License in practice
MIT license (permissive) means you can use, modify, and distribute this package freely in both open-source and commercial projects with minimal restrictions.
Quickstart
pip install immutabledict
from immutabledict import immutabledict
my_dict = immutabledict({"a": "value", "b": "other_value"})
print(my_dict["a"]) # Prints "value"
Verify before relying
- Performance characteristics compared to regular dicts or alternative immutable dict implementations
- Memory overhead of the immutabledict wrapper relative to standard dict
- Specific use cases where PEP 584 union operators provide practical benefit
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release <4.0,>=3.8 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 180 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 23,544,354 / month, #941 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/StableProgramming 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.14Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Software Development :: Libraries :: Python Modules |
Evidence: immutabledict-4.3.1-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 › “immutable dictionary”
- immutabledictProvides an immutable dictionary wrapper that implements the complete…
- frozendictProvides an immutable, hashable dictionary implementation with a…
- constantdictProvides an immutable dictionary class that wraps Python's built-in…
Give your agent the search over MCP, or paste the wish link into any chat.
More Python Modules packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Provides reusable metadata objects for use with PEP-593 `typing.Annotated` to express common constraints like bounds, collection sizes, and predicates on types.
Install it if you use or build libraries that need to express type constraints in a standardized, inspectable way—or if you want to annotate your own types with…
Provides runtime tools to inspect and introspect Python type annotations, enabling programmatic examination of type hints at execution time.
See also constantdict · frozendict · immutables · itypes · jaraco.collections · pyrsistent · attrdict · dictdiffer · multiset