skillfed

plum-py

Pack/Unpack Memory.

plum-py v0.8.7 118.3K downloads/30d#12,123 on PyPI
Permissive license MIT License; http://opensource.org/licenses/MIT Abandoned released

What it is and what it does

plum-py is a Python library for serializing and deserializing binary data—converting byte sequences to Python objects and back again. It works similarly to Python's built-in struct module but offers a broader set of format specifiers and allows you to define your own custom formats, making it useful for working with complex binary protocols, file formats, or network data without writing low-level bit manipulation code.

The package has no runtime dependencies and installs cleanly as a pure Python wheel. It supports Python 3.6 and later, including versions through 3.11. However, it has been abandoned since August 2023 with no recent commits, so while it is marked as production-stable, no active maintenance or updates are being made to address future Python compatibility or bugs.

Use it for:

  • Parse binary network protocols or message formats where you need to unpack structured byte data into Python objects
  • Serialize Python data structures into binary form for storage or transmission over a wire
  • Define custom binary format specifiers for domain-specific file formats or embedded system communication
  • Replace or extend the standard library struct module when you need more format options or extensibility

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Transforms byte sequences into Python objects and back using extensible format specifiers, similar to the standard library struct module but with a larger set of built-in formats.

Yes, if you need binary pack/unpack functionality and can accept that the package is no longer maintained. The code is stable and has no known vulnerabilities, but you should plan for potential incompatibility with future Python versions and lack of support for bug reports. For new projects with long-term support requirements, consider whether the standard library struct module better fits your risk tolerance.

Install

plum-py on PyPI

pip

pip install plum-py

uv

uv add plum-py

poetry

poetry add plum-py

Installing plum-py

Before you install

Installation is straightforward with no runtime dependencies. However, the package is marked as abandoned with no commits since 1096 days ago, meaning no active maintenance or bug fixes are being applied.

License in practice

Licensed under MIT (permissive), so you can use, modify, and distribute it freely with minimal restrictions, though you must include the license notice.

Quickstart

pip install plum-py

import plum
# Create a format and pack/unpack data
fmt = plum.Format('...')  # define format specifiers
packed = fmt.pack(data)
unpacked = fmt.unpack(packed)

Requires Python 3.6 or later; package is abandoned as of August 2023 with no ongoing maintenance.

Verify before relying

  • Whether the package remains compatible with Python versions beyond 3.11 as they are released
  • Whether the extensibility mechanism and custom format specifiers are well-documented or require reverse-engineering
  • Real-world performance characteristics compared to struct module for typical use cases

Package facts

License MIT License; http://opensource.org/licenses/MIT (permissive)
Python support supports the current Python release (>=3.6)
Install friction low — pure-Python wheel
Runtime dependencies none
Maintenance abandoned — 1,096 days since the last release
First released
Downloads 118,331/month — #12,123 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: plum_py-0.8.7-py3-none-any.whl

Keywords: pack, unpack, bytes, structure, memory

Development Status :: 5 - Production/StableLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9

Tags

pack unpack bytes pythonbinary serialization deserializationstruct alternative format specifiersbyte sequence to object conversionmemory packing unpackingbinary data transformationextensible struct module
binary-serializationabandoned-but-stable

More Software Development packages