Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Scan for outdated or missing drivers - takes under a minute3Clear out junk files and repair common Windows errorsfrozndict—spelled without the second “e”—is a Rust-backed immutable hashmap project with Python and Node.js bindings. It is not the same as the established Python package frozendict, nor the built-in type specified for Python 3.15 by PEP 814. Which one you want depends on your runtime and API needs; none makes mutable values nested inside the mapping immutable.
First, identify which “frozendict” you mean
Three distinct things have similar names, and their features should not be mixed together:
As an Amazon Associate I earn from qualifying purchases.
| Name | What it is | Where to learn more |
|---|---|---|
frozndict |
A third-party project that describes itself as a Rust-powered immutable hashmap with native Python and Node.js bindings. Its PyPI listing specifies Python 3.12 or later and showed version 2.1.1, with release files dated 19 September 2026. Package details may change. | PyPI: frozndict |
Python package frozendict |
A separate, established Python package with a dict-like immutable API, pickle support, and hashing when all values are hashable. Its documentation also describes methods such as set, delete, and deepfreeze. |
PyPI: frozendict |
Python built-in frozendict |
PEP 814 specifies a built-in immutable mapping for Python 3.15. The proposal records an accepted resolution dated 11 February 2026; check the Python version you use for actual availability. | PEP 814 |
The package name is especially easy to mistype: the title-matching project omits the second “e.” Installing frozndict is not the same as installing frozendict.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11What an immutable mapping does—and does not do
A regular Python dictionary lets code add, remove, or reassign key/value pairs. An immutable mapping prevents changes to those associations after construction. That can make shared configuration or other mapping data safer to pass around when callers should not alter its structure.
#1 Best Overall
Immutability is shallow unless the values are immutable too. A mapping containing a list does not, by virtue of its immutable outer structure, freeze that list. PEP 814 allows non-hashable values, but a mapping containing them cannot itself be hashed.
When hashability matters
A hashable mapping can be useful as a dictionary key, a set member, or an argument to functools.lru_cache(), provided its values are hashable. PEP 814 also identifies immutable function defaults as a use case. These benefits do not apply automatically to a mapping whose contents include unhashable values.
Rank #2
Python 3.15’s built-in type versus third-party packages
PEP 814 specifies a built-in frozendict implementing the collections.abc.Mapping protocol and supporting pickling. It preserves insertion order, while equality and hashing do not depend on item order. Equality with a regular dict is supported. Its | operator produces a new frozendict, using the right-hand value when both mappings contain the same key.
Construction from a regular dictionary makes a shallow copy, not a recursive freeze of its values. As with other immutable mappings, the built-in type is hashable only when its values are hashable.
The separate PyPI package named frozendict documents its own dict-like API without ordinary mutating methods. It provides persistent-style updates: set returns a new value with an updated association, and delete returns a new value without the specified key. These are documented features of that package; do not assume that the similarly named frozndict project or Python built-in has the same methods.
What the Rust-backed frozndict project offers
The project describes frozndict as written in safe Rust and powered by PyO3, with native Python and Node.js bindings. Its PyPI listing gives pip install frozndict for Python and npm i frozndict for Node.js, and also lists Rust and Linux package channels. Its stated Python requirement is 3.12 or later. Check the current package listing for support for your specific runtime and platform before adopting it.
The project calls itself “the world’s most memory-efficient” immutable hashmap. That is the owner’s promotional claim, not a result independently established by the sources cited here. The same caution applies to broad descriptions such as “state of the art”: they should not be treated as a guarantee for a particular application.
Recommended Free Tools
How to interpret the published performance comparison
The project publishes a microbenchmark using a 1,000-element dictionary and compares Python dict, immutables.Map, the established C frozendict, and frozndict. Its table reports seconds per operation in a configured x86-64 Linux environment. The results vary by operation: Python’s built-in dict leads the reported construction and lookup cases, while frozndict leads iteration and copy in that table. The benchmark and its results are described in the project documentation.
Best Value
Those figures are a project-published microbenchmark, not an independent replication or a general prediction for another workload. They do not establish that frozndict is faster or uses less memory in every application. If performance matters, compare the operations your code actually performs, with representative mapping sizes and values, on your target runtime and platform.
Which option should you choose?
- Choose the Python built-in when you are using a Python version that provides the PEP 814 type and its specified behavior meets your needs.
- Consider
frozndictwhen you specifically want the Rust-backed project’s Python or Node.js bindings, and your runtime and platform are supported by its current package release. - Consider the established Python
frozendictpackage when its documented Python API, including persistent-style update methods, suits your code. - Use a different immutable mapping if it fits better; compare API behavior, value hashability, update semantics, runtime support, and performance for your own workload rather than choosing by name or a single benchmark result.
Installation and adoption checks
For the title-matching project, the listed install commands are:
- Python:
pip install frozndict - Node.js:
npm i frozndict
Before relying on an immutable mapping in production, verify the package identity, supported runtime and platform, and the behavior you need—especially hashing, equality, copying, and update operations. Confirm whether nested values must also be immutable for your use case.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




