partd
Appendable key-value storage
Decision gist · record as of 2026-08-14
Yes, if you need a lightweight, composable append-oriented key-value store for shuffle-heavy workloads or multi-process data coordination. The low install friction, permissive license, and stable API make it a solid choice for established use cases. However, dormant maintenance (last release May 2024, minimal recent activity) means it is best suited to stable, well-tested scenarios rather than active feature development or integration with rapidly evolving data science ecosystems.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9 or later; file-backed stores need write access to the specified directory.
- Low friction installation with only two runtime dependencies (locket and toolz).
- Dormant maintenance status—last release was in May 2024 and the repository has not been archived, but activity is minimal.
License · maintenance · safety
BSD (permissive) — BSD permissive license allows broad use, modification, and distribution with minimal restrictions, making it suitable for commercial and open-source projects.
last release 2024-05-06 (830 days) · last repo commit 2024-07-15 · 107 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 22,621,136 downloads/mo, #967 on PyPI
Alternatives
Verify before relying
import partd
# File-backed store
p = partd.File('/path/to/dataset/')
p.append({'x': b'Hello ', 'y': b'123'})
p.append({'x': b'world!', 'y': b'456'})
result = p.get('x') # b'Hello world!'
p.drop()- Whether partd is actively maintained or if dormant status indicates it is no longer suitable for new projects.
- Performance characteristics and scalability limits for large datasets or high-frequency append operations.
- Compatibility with modern data science workflows (e.g., integration with pandas, numpy, or dask beyond the examples shown).
What it is and what it does
Partd is a composable key-value store designed to handle append-heavy workloads, particularly shuffling operations common in distributed data processing. It stores raw bytes under string keys and supports appending new bytes to existing values, then retrieving the concatenated result. The package excels because it offers multiple interchangeable backends: an in-memory dictionary for small datasets, a file-based store for persistence, a buffered layer that spills to disk when memory runs low, and a client-server model for multi-process coordination.
The package's main strength is its composability—you can layer compression (BZ2, Blosc, ZLib, Snappy), encoding (Pickle, NumPy, Pandas), and storage backends together by nesting them, so a single append or get call transparently handles serialization, compression, and I/O. This design makes it useful for data pipelines that need to shuffle intermediate results efficiently without writing custom serialization or buffering logic. It depends on locket for file-based locking and toolz for utility functions.
Use it for
- Buffering intermediate shuffle results in a distributed data processing pipeline where data must be reorganized by key across multiple workers.
- Storing and retrieving compressed, serialized Python objects (lists, arrays, dataframes) on disk without manual encoding or decompression.
- Coordinating multi-process writes to a single key-value store via a server process, ensuring consistency across workers.
- Implementing a spill-to-disk cache that keeps hot data in memory and automatically moves cold data to files when memory pressure rises.
- Composing custom storage layers by wrapping a base store (Dict or File) with compression and encoding transformations.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need a lightweight, composable append-oriented key-value store for shuffle-heavy workloads or multi-process data coordination.
The low install friction, permissive license, and stable API make it a solid choice for established use cases. However, dormant maintenance (last release May 2024, minimal recent activity) means it is best suited to stable, well-tested scenarios rather than active feature development or integration with rapidly evolving data science ecosystems.
Install
partd on PyPI
Before you install
Low friction installation with only two runtime dependencies (locket and toolz). Dormant maintenance status—last release was in May 2024 and the repository has not been archived, but activity is minimal. Suitable for stable, established use cases rather than active development.
Requires Python 3.9 or later; file-backed stores need write access to the specified directory.
License in practice
BSD permissive license allows broad use, modification, and distribution with minimal restrictions, making it suitable for commercial and open-source projects.
Quickstart
import partd
# File-backed store
p = partd.File('/path/to/dataset/')
p.append({'x': b'Hello ', 'y': b'123'})
p.append({'x': b'world!', 'y': b'456'})
result = p.get('x') # b'Hello world!'
p.drop()
Verify before relying
- Whether partd is actively maintained or if dormant status indicates it is no longer suitable for new projects.
- Performance characteristics and scalability limits for large datasets or high-frequency append operations.
- Compatibility with modern data science workflows (e.g., integration with pandas, numpy, or dask beyond the examples shown).
Package facts
| License | BSD permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 2 packageslockettoolz |
| Maintenance | Dormant 830 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 22,621,136 / month, #967 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Programming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.9 |
Evidence: partd-1.4.2-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 › “key-value store append”
- partdPartd is a key-value byte store that appends values to existing keys…
- py-key-value-aioProvides an async-only, pluggable key-value store abstraction with…
- valkeyPython client library for connecting to and executing commands…
Give your agent the search over MCP, or paste the wish link into any chat.
More Database packages
psycopg2-binary is a PostgreSQL database adapter for Python that implements the DB API 2.0 specification, enabling Python applications to connect to and query PostgreSQL databases with thread-safe concurrent operations.
Python client library for connecting to and executing commands against Redis key-value stores, supporting both synchronous and asynchronous operations.
Install it if your application needs to interact with Redis; the only prerequisite is a running Redis server instance.
YDB Python SDK is the official client library for connecting to and querying YDB databases from Python applications.
Install it if you need to connect Python applications to YDB databases.
Connects Python applications to Snowflake data warehouses using the DB API 2.0 specification, enabling SQL queries, data transfers, and warehouse operations.
sqlparse tokenizes SQL text into a tree of statements, clauses, and expressions, and provides functions to split scripts, format queries, and inspect parsed tokens without validating dialect or syntax.
Install it if you need to manipulate, format, or analyze SQL text programmatically.
Provides base adapter protocols and shared functionality that database adapters use to integrate with dbt-core, handling connections, dialect translation, relation caching, and core interface management.
See also pickleshare · pyppmd · fcache · DrissionRecord · numcodecs · speedict · cobs · ase-db-backends · historydict · sqlitedict