Development and tracker moved to SourceHut
OxZMQ is an implementation of ZeroMQ in pure Rust. Its high-level goals are as follows, ordered by priority.
- Fool-proof, impossible-to-misuse API
- As efficient as possible, hopefully one day on par with
libzmq
- Match the functionality of
libzmq
The name is pronounced "oxy-em-queue" because "oxy" is kind of like "oxygenation", which is kind of like Rust.
License — MPL 2.0
This project is licensed under the MPL, Version 2 (license FAQ here). I chose the MPL in spite of the fact that Rust projects overwhelmingly use a duel MIT/Apache-2 license. However, it is a non-viral license, so hopefully members of the Rust community won't be afraid to use it in their projects.
Reasons I chose the MPL:
- It ensures that all changes made to downstream forks can be reintegrated into the project.
- It isn't viral—you can license "larger works" under an arbitrary license.
- I was swayed by the arguments Peter Hintjens made in the ZeroMQ guide.
- The ZeroMQ project generally intends to move to the MPL and recommends it for all new projects.
In the spirit of ZeroMQ, this project will do its best to adhere to the principles of C4. The exact protocol for C4 is described in its specification. This has a few consequences worth mentioning here:
- Anyone who submits an accepted patch can become a maintainer.
- We will only have a single branch on this repo, which we'll call "master".
- No one, without exception, can merge their own patch. This will take effect one there's more than a single maintainer on the project.
- All patches should solve exactly one issue, and that issue should have a clear statement of a real and current problem identified with the project.
The C4 specification has more detailed information, and the ZeroMQ Guide gives justifications for the process.