--- id: pamqp version: "4.0.1" license: BSD-3-Clause license_treatment: permissive maintenance: active --- # pamqp — RabbitMQ Focused AMQP low-level library License: permissive · Maintenance: active · Downloads: 6.5M/mo ## What it is and what it does pamqp is a low-level AMQP 0-9-1 frame marshaling library designed for use by higher-level client libraries like aio-pika, aioamqp, and aiormq rather than for direct end-user application code. It handles the serialization and deserialization of AMQP protocol frames, supporting all standard AMQP data types, field tables, arrays, and RabbitMQ-specific extensions. The library is production-stable with full type annotations verified by mypy and basedpyright, carries no runtime dependencies, and supports current Python versions (3.11+). It sits in the protocol layer between application code and the network, making it essential infrastructure for any library that needs to speak AMQP to RabbitMQ or compatible brokers. Use it for: - Building a custom AMQP client library that needs to encode and decode protocol frames without implementing the spec yourself. - Extending or wrapping existing AMQP client libraries (aio-pika, aiormq) with custom frame handling or protocol inspection. - Implementing AMQP protocol testing, mocking, or debugging tools that need to work with raw frames. - Creating message queue middleware or proxies that intercept and transform AMQP traffic. - Integrating RabbitMQ communication into systems where existing client libraries don't fit the architecture. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. pamqp encodes and decodes AMQP 0-9-1 protocol frames for use by client libraries communicating with RabbitMQ, with no runtime dependencies and full type annotations. Yes, if you are building or extending an AMQP client library or protocol tool. No, if you are writing application code that talks to RabbitMQ—use a higher-level client library instead. The package is stable, actively maintained, has no dependencies, and is already trusted by established libraries in the ecosystem. ## Install pip install pamqp uv add pamqp poetry add pamqp ## Installing pamqp Before you install: Low friction install with no runtime dependencies. Actively maintained with a recent release (39 days ago) and current commit activity. License in practice: BSD-3-Clause permissive license allows commercial and private use with minimal restrictions. Quickstart: pip install pamqp import pamqp.frame import pamqp.specification # Encode a frame frame = pamqp.frame.Frame(pamqp.specification.Connection.Start()) encoded = frame.marshal() Requires Python 3.11 or later. Verify before relying: - Whether the package's RabbitMQ extensions (Connection.Blocked, Connection.Unblocked) cover all common use cases or if additional extension support may be needed. - Performance characteristics and throughput limits for frame encoding/decoding at scale. ## Package facts - License: BSD-3-Clause (permissive) - Python support: supports_current - Install friction: low - Maintenance: active - Downloads: 6.5M/month (top 5,000 on PyPI) - Known vulnerabilities: none known ## Tags amqp frame encoding decoding, rabbitmq protocol library, amqp 0-9-1 marshaling, message queue frame parsing, amqp serialization, rabbitmq client library base, amqp data type handling, amqp-protocol, rabbitmq, message-queue [View on SkillFed](https://skillfed.io/packages/pamqp) · [View on PyPI](https://pypi.org/project/pamqp/)