--- id: plum-py version: "0.8.7" license: MIT License; http://opensource.org/licenses/MIT license_treatment: permissive maintenance: abandoned --- # plum-py — Pack/Unpack Memory. License: permissive · Maintenance: abandoned · Downloads: 118.3K/mo ## 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 above — 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 pip install plum-py uv add plum-py 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_current - Install friction: low - Maintenance: abandoned - Downloads: 118.3K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags pack unpack bytes python, binary serialization deserialization, struct alternative format specifiers, byte sequence to object conversion, memory packing unpacking, binary data transformation, extensible struct module, binary-serialization, abandoned-but-stable [View on SkillFed](https://skillfed.io/packages/plum-py) · [View on PyPI](https://pypi.org/project/plum-py/)