fedora-messaging
A set of tools for using Fedora's messaging infrastructure
What it is and what it does
Fedora Messaging is a library for interacting with Fedora's AMQP-based messaging infrastructure, replacing the older PyZMQ-backed fedmsg library. It provides synchronous APIs for publishing messages and asynchronous APIs for consuming them, along with a framework for declaring and validating message schemas. The package bundles consumer services that can run standalone, making it suitable for both simple one-off message publishing and complex event-driven architectures.
The library depends on Twisted for async I/O, pika for AMQP protocol handling, and several supporting libraries (jsonschema for validation, pyopenssl for TLS, crochet for bridging sync/async code). It targets modern Python versions (3.9–3.14) and is actively maintained by the Fedora Infrastructure team, with production-stable status and no known security vulnerabilities.
Use it for:
- Publish events from Fedora infrastructure services to a central AMQP broker for downstream consumption.
- Build async consumer services that listen for and react to Fedora messaging events in real time.
- Define and validate message schemas to ensure consistency across distributed Fedora systems.
- Migrate legacy fedmsg-based applications to a modern AMQP-backed messaging layer.
- Integrate Fedora infrastructure events into external monitoring, logging, or workflow automation systems.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides tools and APIs for publishing and consuming messages on AMQP brokers, with schema declaration and async consumer services for Fedora's messaging infrastructure.
Yes, if you are building or maintaining services within Fedora Infrastructure or need to consume Fedora messaging events. The library is production-stable, actively maintained, and has low install friction. However, be aware of the GPLv2+ copyleft license (verify dual-licensing implications for proprietary code) and the requirement for a running AMQP broker. Not suitable for standalone use outside Fedora-integrated systems.
Install
fedora-messaging on PyPI
pip
pip install fedora-messaginguv
uv add fedora-messagingpoetry
poetry add fedora-messagingInstalling fedora-messaging
Before you install
Low install friction with a pure-Python wheel. Active maintenance with a recent release (52 days ago) and ongoing commits. Ten runtime dependencies including Twisted and pika introduce moderate complexity, but the project is stable and production-ready.
License in practice
GPLv2+ copyleft license: derivative works and distributions must comply with GPL terms. The classifier also lists 'Other/Proprietary License', which may indicate dual licensing or mixed components—verify the actual license terms before integrating into proprietary software.
Quickstart
pip install fedora-messaging
from fedora_messaging import api
api.publish(message=my_message, exchange='amq.topic')
Requires an AMQP broker (e.g., RabbitMQ) to be running and accessible; also requires Python 3.9 or later.
Verify before relying
- Whether the 'Other/Proprietary License' classifier indicates dual licensing or a licensing conflict with the GPLv2+ primary license.
- Whether Twisted's async event loop integration imposes constraints on deployment or testing environments.
- Specific message schema validation capabilities and compatibility with existing Fedora message formats.
Package facts
| License | GPLv2+ (copyleft) |
| Python support | supports the current Python release (<4.0.0,>=3.9.0) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 10 — blinker, click, crochet, jsonschema, pika, pyopenssl, requests, service-identity, tomli, twisted |
| Maintenance | actively maintained — 52 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 115,798/month — #12,236 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: fedora_messaging-3.9.1-py3-none-any.whl
Keywords: fedora
Tags
More Distributed Computing packages
gRPC Python is an HTTP/2-based RPC framework…
permissive · top 100 on PyPI
execnetexecnet lets you spawn and communicate with…
permissive · top 1,000 on PyPI
cloudpickleCloudpickle extends Python's standard pickle…
permissive · top 1,000 on PyPI
smart-openProvides a unified, open()-compatible Python…
permissive · top 1,000 on PyPI
portalockerPortalocker provides cross-platform file…
permissive · top 1,000 on PyPI
rayRay is a distributed computing framework that…
permissive · top 1,000 on PyPI
kombuKombu is a messaging library that provides a…
permissive · top 1,000 on PyPI
python-qpid-protonProvides Python bindings to Qpid Proton, an…
permissive · top 15,000 on PyPI
amqpPure-Python AMQP 0.9.1 client library for…
permissive · top 1,000 on PyPI
AMQPStormA thread-safe Python 3 client library for…
permissive · top 15,000 on PyPI
apache-airflow-providers-common-messagingProvides common messaging abstractions and…
permissive · top 15,000 on PyPI
stomp.pyA Python client library for connecting to STOMP…
permissive · top 5,000 on PyPI
pyzmqPyZMQ provides Python bindings for ZeroMQ…
permissive · top 1,000 on PyPI
faststreamAn asynchronous Python framework for building…
permissive · top 5,000 on PyPI
pamqppamqp encodes and decodes AMQP 0-9-1 protocol…
permissive · top 5,000 on PyPI
zmqThis package is a redirect to pyzmq, the…
permissive · top 15,000 on PyPI