skillfed

pamqp

RabbitMQ Focused AMQP low-level library

pamqp v4.0.1 6.5M downloads/30d#1,901 on PyPI56
Permissive license BSD-3-Clause Active released

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 on this page — 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

pamqp on PyPI

pip

pip install pamqp

uv

uv add pamqp

poetry

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 the current Python release (>=3.11)
Install friction low — pure-Python wheel
Runtime dependencies none
Maintenance actively maintained — 39 days since the last release
Last repo commit
First released
Downloads 6,493,682/month — #1,901 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: pamqp-4.0.1-py3-none-any.whl

Keywords: amqp, rabbitmq

Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: BSD LicenseNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: Implementation :: CPythonTopic :: CommunicationsTopic :: InternetTopic :: Software DevelopmentTyping :: Typed

Tags

amqp frame encoding decodingrabbitmq protocol libraryamqp 0-9-1 marshalingmessage queue frame parsingamqp serializationrabbitmq client library baseamqp data type handling
amqp-protocolrabbitmqmessage-queue

More Software Development packages