Requests for Comments

This site contains published ZeroMQ RFCs. To create a new RFC or propose changes to a draft, please fork the RFC repository.

Specifications

Raw Draft Stable Legacy Retired Deleted

39/ZWS - ZeroMQ WebSocket Protocol - Raw
The ZeroMQ WebSocket (ZWS) protocol is a mapping for ZeroMQ over WebSocket. (Updated 12 Aug 2014 11:37)

37/ZMTP - ZeroMQ Message Transport Protocol - Raw
The ZeroMQ Message Transport Protocol (ZMTP) is a transport layer protocol for exchanging messages between two peers over a connected transport layer such as TCP. This document describes ZMTP 3.1. This version adds SUBSCRIBE, CANCEL, PING and PONG commands, and endpoint resources. (Updated 05 Jun 2014 08:54)

38/ZMTP GSSAPI Security Mechanism - Draft
The ZMTP GSSAPI mechanism provides secure authentication and confidentiality for ZMTP 3.0. This mechanism utilizes the Generic Security Service Application Interface. (Updated 05 Jun 2014 08:54)

36/ZeroMQ Realtime Exchange Protocol - Draft
The ZeroMQ Realtime Exchange Protocol (ZRE) governs how a group of peers on a network discover each other, organize into groups, and send each other events. ZRE runs over the ZeroMQ Message Transfer Protocol (ZMTP). (Updated 14 Aug 2014 15:07)

35/FILEMQ - File Message Queuing Protocol - Draft
The File Message Queuing Protocol (FILEMQ) governs the delivery of files between a 'client' and a 'server'. FILEMQ runs over the ZeroMQ ZMTP v3 protocol. This is version 2 of the FILEMQ protocol. (Updated 05 Apr 2014 13:29)

34/SRPZMQ Authentication and Encryption Protocol - Draft
This document describes an extension of the ZMQ security mechanism to be able to authenticate a client without the client having to have a private key generated beforehand. Instead, keys are generated from a pregenerated private key on the server side (which have been generated during some kind of registration process) and from a username/password combination on the client side. (Updated 14 Nov 2013 10:25)

33/ZHTTP - HTTP Request-Reply over ZeroMQ - Draft
This document describes a protocol for performing HTTP requests and responses over ZeroMQ. It is partly modeled after the protocols of Mongrel2 and ZeroGW, but with the addition of streaming capability and credits-based flow control. (Updated 10 Aug 2013 21:35)

18/MDP - Majordomo Protocol 0.2 - Draft
The Majordomo Protocol (MDP) defines a reliable service-oriented request-reply dialog between a set of client applications, a broker and a set of worker applications. MDP covers presence, heartbeating, and service-oriented request-reply processing. It originated from the Majordomo pattern defined in Chapter 4 of the Guide. This is MDP version 0.2, which adds support for multiple replies for a single request. (Updated 04 Aug 2012 08:34)

17/ZDCF - ZeroMQ Device Configuration File - Draft
The ZeroMQ Device Configuration File (ZDCF) specifies a standard language for configuring 0MQ devices. It provides information to configure a 0MQ context, and a set of 0MQ sockets. This specification aims to make it easier to build, share, and reuse 0MQ devices and build systems for device administration. (Updated 25 Mar 2012 13:12)

12/CHP - Clustered Hashmap Protocol - Draft
The Clustered Hashmap Protocol (CHP) defines a cluster-wide key-value hashmap, and mechanisms for sharing this across a set of clients. CHP allows clients to work with subtrees of the hashmap, to update values, and to define ephemeral values. CHP originated from the Clone pattern defined in Chapter 5 of the Guide. (Updated 17 Apr 2011 09:39)

11/MTL - Message Transfer Layer - Draft
This document proposes a Message Transport Layer (MTL), a connection-oriented protocol that supports broker-based messaging. MTL connects a set of clients with a central message broker, allowing clients to issue commands to the broker, send messages to the broker, and receive messages back from the broker. (Updated 29 Sep 2012 08:30)

10/FLP - Freelance Protocol - Draft
The Freelance Protocol (FLP) defines brokerless reliable request-reply dialogs across an N-to-N network of clients and servers. It originated in Chapter 4 of the Guide. (Updated 27 Mar 2011 07:21)

9/TSP - Titanic Service Protocol - Draft
The Titanic Service Protocol (SP) defines a set of services, requests, and replies that implement the Titanic pattern for disconnected persistent messaging across a network of arbitrarily connected clients and workers. (Updated 16 Mar 2011 08:37)

8/MMI - Majordomo Management Interface - Draft
The Majordomo Management Interface (MMI) defines a namespace and set of management services that MDP brokers may provide. MMI is layered on top of the 7/MDP protocol. (Updated 08 Mar 2011 16:44)

6/PPP - Paranoid Pirate Protocol - Draft
The Paranoid Pirate Protocol (PPP) defines a reliable request-reply dialog between a client (or client) and a worker peer. PPP covers presence, heartbeating, and request-reply processing. It originated in Chapter 4 of the Guide. (Updated 27 Jan 2012 22:42)

5/ZDCF - ZeroMQ Device Configuration File - Draft
The ZeroMQ Device Configuration File (ZDCF) specifies a standard language for configuring 0MQ devices. It provides information to configure a 0MQ context, and a set of 0MQ sockets. This specification aims to make it easier to build, share, and reuse 0MQ devices and build systems for device administration. (Updated 08 Mar 2011 16:49)

32/Z85 - ZeroMQ Base-85 Encoding Algorithm - Stable
This document specifies Z85, a format for representing binary data as printable text. Z85 is a derivative of existing Ascii85 encoding mechanisms, modified for better usability, particularly for use in source code. (Updated 04 Aug 2014 17:44)

31/EXPAIR - ZeroMQ Exclusive Pair Pattern - Stable
This document specifies the semantics of the ZeroMQ exclusive pair pattern, which covers the PAIR socket type. This specification is intended to guide implementations of this socket type so that users can depend on reliable semantics. (Updated 01 Jul 2013 05:04)

30/PIPELINE - ZeroMQ Pipeline Pattern - Stable
This document specifies the semantics of the ZeroMQ pipeline pattern, which covers the PUSH and PULL socket types. This specification is intended to guide implementations of these socket types so that users can depend on reliable semantics. (Updated 01 Jul 2013 05:04)

29/PUBSUB - ZeroMQ Publish-Subscribe Pattern - Stable
This document specifies the semantics of the ZeroMQ publish-subscribe pattern, which covers the PUB, XPUB, SUB, and XSUB socket types. This specification is intended to guide implementations of these socket types so that users can depend on reliable semantics. (Updated 05 Apr 2014 13:29)

28/REQREP - ZeroMQ Request-Reply Pattern - Stable
This document specifies the semantics of the ZeroMQ request-reply pattern, which covers the REQ, REP, DEALER, and ROUTER socket types. This specification is intended to guide implementations of these socket types so that users can depend on reliable semantics. (Updated 01 Jul 2013 05:04)

27/ZAP - ZeroMQ Authentication Protocol - Stable
This document specifies ZAP, the ZeroMQ Authentication Protocol. The use case for ZAP is a set of servers that need authentication of remote clients, and which talk to an handler that checks client credentials. ZAP defines how the servers connect to the handler, and the messages they exchange. (Updated 18 Aug 2014 08:41)

26/CurveZMQ Authentication and Encryption Protocol - Stable
This document describes CurveZMQ, a protocol for secure messaging across the Internet. CurveZMQ is closely based on Daniel J. Bernstein's CurveCP, adapted for use in ZeroMQ over TCP. A reference implementation of CurveZMQ is provided at curvezmq.org. This document describes version 1.0 of CurveZMQ. (Updated 15 May 2014 07:56)

25/ZMTP CURVE Security Mechanism - Stable
The ZMTP CURVE mechanism provides secure authentication and confidentiality for ZMTP 3.0. This mechanism implements the CurveZMQ security protocol. It is intended for use on public networks where security requirements are high. (Updated 28 Apr 2014 12:44)

24/ZMTP PLAIN Security Mechanism - Stable
The ZMTP PLAIN mechanism defines a simple username/password mechanism for ZMTP 3.0 that lets a server authenticate a client. PLAIN makes no attempt at security or confidentiality. It is intended for use on internal networks where security requirements are low. (Updated 28 Apr 2014 12:44)

23/ZMTP - ZeroMQ Message Transport Protocol - Stable
The ZeroMQ Message Transport Protocol (ZMTP) is a transport layer protocol for exchanging messages between two peers over a connected transport layer such as TCP. This document describes ZMTP 3.0. The major change in this version is the addition of security mechanisms and the removal of hard-coded connection metadata (socket type and identity) from the greeting. (Updated 18 May 2014 08:52)

22/C4.1 - Collective Code Construction Contract - Stable
The Collective Code Construction Contract (C4) is an evolution of the github.com Fork + Pull Model, aimed at providing an optimal collaboration model for free software projects. This is revision 1 of the C4 specification. (Updated 17 Jul 2014 17:17)

21/CLASS - C Language Style for Scalability - Stable
The C Language Style for Scalability (CLASS) defines a consistent style and organization for scalable C library and application code built on modern C compilers and operating systems. CLASS aims to collect industry best practice into one reusable standard. (Updated 28 Jun 2013 19:02)

20/ZeroMQ Realtime Exchange Protocol - Stable
The ZeroMQ Realtime Exchange Protocol (ZRE) governs how a group of peers on a network discover each other, organize into groups, and send each other events. ZRE runs over the ZeroMQ ZMTP protocol. Note that this specification has been superceded by rfc.zeromq.org/spec:36/ZRE. (Updated 29 Jun 2014 15:31)

19/FILEMQ - File Message Queuing Protocol - Stable
The File Message Queuing Protocol (FILEMQ) governs the delivery of files between a 'client' and a 'server'. FILEMQ runs over the ZeroMQ ZMTP protocol. (Updated 05 Apr 2014 07:38)

15/ZMTP - ZeroMQ Message Transport Protocol - Stable
The ZeroMQ Message Transport Protocol (ZMTP) is a transport layer protocol for exchanging messages between two peers over a connected transport layer such as TCP. This document describes ZMTP/2.0. (Updated 28 Jun 2013 19:03)

7/MDP - Majordomo Protocol - Stable
The Majordomo Protocol (MDP) defines a reliable service-oriented request-reply dialog between a set of client applications, a broker and a set of worker applications. MDP covers presence, heartbeating, and service-oriented request-reply processing. It originated from the Majordomo pattern defined in Chapter 4 of the Guide. (Updated 12 Sep 2011 17:22)

4/ZPL - ZeroMQ Property Language - Stable
The ZeroMQ Property Language (ZPL) defines a minimalistic framing language for specifying property sets, expressed as a hierarchy of name-value property pairs. (Updated 11 Mar 2014 09:32)

This site holds ØMQ specification (requests for comments) that describe protocols, APIs, and file formats submitted for standardization. Anyone can submit a new specification. Specifications should be discussed on zeromq-dev. Specifications are moderated for quality and relevance.