Developer Interface

This documentation covers the public interfaces fedmsg provides. Unless otherwise noted, all documented interfaces follow Semantic Versioning 2.0.0. If the interface you depend on is not documented here, it may change without warning in a minor release.

Python

Sending and Receiving Messages

Configuration

For the list of configuration options, see the Configuration documentation.

Cryptography and Message Signing

Message Encoding

SQLAlchemy Encoding Utilities

“Natural Language” Representation of Messages

Replay

The fedmsg Protocol

fedmsg uses ZeroMQ Publish-Subscribe (PUBSUB) sockets for the messages sent by fedmsg.publish() and the messages received by fedmsg.tail_messages() or by way of the Moksha Hub-Consumer approach.

Warning

The message format described below is not part of the public API at this time.

The published ZeroMQ message consists of a multi-part message of exactly two frames, formatted on the wire as follows:

  • Frame 0: The message topic against which subscribers will perform a binary comparison.
  • Frame 1: The JSON-serialized, UTF-8 encoded message.