atomic_dict
A library for lock-free shared 64-bit dictionaries
Decision gist · record as of 2026-08-14
Yes, if you need lock-free inter-process integer coordination in Python and accept the constraints: fork-based multiprocessing, fixed-size dictionary, 64-bit integers only, and manylinux_2_28 x86_64 platform dependency. The dormant maintenance status and zero community stars suggest limited adoption; verify it fits your exact use case before committing. Not suitable for general-purpose shared data structures or non-fork multiprocessing contexts.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires fork-based multiprocessing context; keys must be non-zero 64-bit integers; maximum dictionary size must be specified upfront.
- Medium install friction due to platform-specific wheels (manylinux_2_28 x86_64 only for Python 3.10–3.14).
- Repository is dormant (last commit 2024-08-17, no stars), suggesting limited ongoing maintenance or community adoption.
License · maintenance · safety
BSD-3 (permissive) — BSD-3 permissive license allows commercial and private use with minimal restrictions; attribution required.
last release 2024-08-17 (727 days) · last repo commit 2024-08-17
0 known vulnerabilities (OSV.dev, 2026-08-14) · 266,027 downloads/mo, #8,310 on PyPI
Alternatives
Verify before relying
from atomic_dict import AtomicDict
import multiprocessing
dict = AtomicDict(1024*1024)
context = multiprocessing.get_context("fork")
def worker(id: int) -> None:
dict[1].add(1) # atomic increment
dict[100 + id] = id
with context.Pool(8) as p:
p.map(worker, range(16))- Whether the manylinux_2_28 wheel constraint limits deployment to recent Linux distributions or if other platforms are supported.
- Whether the 0 stars and dormant status reflect low adoption or simply a niche use case with satisfied users.
What it is and what it does
Atomic-Dict is a specialized synchronization primitive for multiprocess Python programs that need to share and atomically update 64-bit integer values across process boundaries. It implements a fixed-size Map[Int, Int] with lock-free operations—no mutexes, no waits—using cache-local memory layout for speed. The library is deliberately minimal: keys and values are 64-bit integers only, keys cannot be deleted once allocated, and the dictionary size is fixed at creation. It is not a general-purpose dictionary but rather a building block for inter-process coordination in performance-critical code.
The package supports atomic operations including compare-and-swap, exchange, increment, decrement, bitwise OR/XOR/AND, and swap. To work with complex types, you pre-allocate a shared list before forking and use list indices as keys and values. The design trades flexibility for speed and simplicity—operations never block, making it suitable for tight loops in worker processes that need to coordinate counters, flags, or indices without contention.
Use it for
- Coordinate counters across worker processes in a multiprocessing pool without locks or synchronization overhead.
- Implement lock-free work-stealing or load-balancing primitives where processes update shared state atomically.
- Build inter-process synchronization for real-time systems where latency and cache locality matter more than feature richness.
- Share and update indexed references to complex objects across processes by using the dictionary as a pointer map.
- Implement fast, contention-free metrics or telemetry collection in parallel workloads.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need lock-free inter-process integer coordination in Python and accept the constraints: fork-based multiprocessing, fixed-size dictionary, 64-bit integers only, and manylinux_2_28 x86_64 platform dependency.
The dormant maintenance status and zero community stars suggest limited adoption; verify it fits your exact use case before committing. Not suitable for general-purpose shared data structures or non-fork multiprocessing contexts.
Install
atomic-dict on PyPI
Before you install
Medium install friction due to platform-specific wheels (manylinux_2_28 x86_64 only for Python 3.10–3.14). Repository is dormant (last commit 2024-08-17, no stars), suggesting limited ongoing maintenance or community adoption.
Requires fork-based multiprocessing context; keys must be non-zero 64-bit integers; maximum dictionary size must be specified upfront.
License in practice
BSD-3 permissive license allows commercial and private use with minimal restrictions; attribution required.
Quickstart
from atomic_dict import AtomicDict
import multiprocessing
dict = AtomicDict(1024*1024)
context = multiprocessing.get_context("fork")
def worker(id: int) -> None:
dict[1].add(1) # atomic increment
dict[100 + id] = id
with context.Pool(8) as p:
p.map(worker, range(16))
Verify before relying
- Whether the manylinux_2_28 wheel constraint limits deployment to recent Linux distributions or if other platforms are supported.
- Whether the 0 stars and dormant status reflect low adoption or simply a niche use case with satisfied users.
Package facts
| License | BSD-3 permissive |
| Python support | Supports the current Python release <4.0,>=3.10 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | None |
| Maintenance | Dormant 727 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 266,027 / month, #8,310 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: Other/Proprietary LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12 |
Evidence: atomic_dict-0.5.0-cp310-cp310-manylinux_2_28_x86_64.whl; atomic_dict-0.5.0-cp313-cp313-manylinux_2_28_x86_64.whl; atomic_dict-0.5.0-cp314-cp314-manylinux_2_28_x86_64.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 › “lock-free shared dictionary”
- atomic_dictAtomic-Dict provides a lock-free, shared 64-bit integer key-value map…
- atomosAtomos provides thread-safe atomic primitives (integers, floats,…
- sharedShared provides a simple file-based data persistence layer that…
Give your agent the search over MCP, or paste the wish link into any chat.
More Distributed Computing packages
gRPC Python is an HTTP/2-based RPC framework that enables you to define and call remote procedures across network boundaries using protocol buffers for serialization.
Install it if you need RPC communication in a distributed system or are integrating with existing gRPC services.
execnet lets you spawn and communicate with Python interpreters across local processes, remote hosts, and different platforms, using a simple API for task distribution and inter-process messaging.
However, the aging maintenance status (275 days since last release) means you should verify it meets your concurrency and performance needs before committing to a…
Cloudpickle extends Python's standard pickle module to serialize lambda functions, interactively-defined functions and classes, and other constructs that the default pickle cannot handle, making it suitable for cluster computing and remote code execution.
Install it if you need to serialize lambda functions, interactively-defined code, or non-standard Python constructs for cluster computing or distributed execution.
Provides a unified, open()-compatible Python API for streaming large files from remote storage (S3, GCS, Azure, HDFS, SFTP, HTTP) and local filesystems, with transparent compression support.
Install it if you work with large files on cloud storage or remote systems and want to avoid writing boilerplate around multiple SDKs.
Portalocker provides cross-platform file locking with support for exclusive and shared locks, plus Redis-based distributed locks and process-aware PID file locking.
Install it if you need file or process coordination; the optional extras (pywin32, redis) are only required for specific lock types.
Ray is a distributed computing framework that scales Python applications from a single machine to multi-node clusters, providing abstractions for parallel tasks, stateful actors, and shared objects.
See also atomos · locket · posix-ipc · circular-dict · shared · aiorwlock · aioprocessing · lockfile · multiprocess · filelock