Skip to content

Commit a0ef148

Browse files
authored
Merge pull request #192 from zeromq/update-readme
update readme with status and runtime support
2 parents 3fe6357 + d85e820 commit a0ef148

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

README.md

+14-5
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,60 @@
11
# zmq.rs - A native Rust implementation of ZeroMQ
22

3-
**DISCLAIMER: The codebase is very much a work in progress and feature incomplete. DO NOT USE IN PRODUCTION**
3+
**DISCLAIMER: This codebase does not implement all of ZeroMQ's feature set.**
44

55
ZeroMQ is a high-performance asynchronous messaging library that provides many popular messaging patterns for many transport types. They look and feel like Berkeley style sockets, but are fault tolerant and easier to use. This project aims to provide a native rust alternative to the [reference implementation](https://github.com/zeromq/libzmq), and leverage Rust's async ecosystem.
66

77
## Current status
8-
A basic ZMTP implementation is working, but is not yet fully compliant to the spec. Integration tests against the reference implementation are also missing. External APIs are still subject to change - there are no semver or stability guarantees at the moment.
8+
9+
Basic ZMTP implementation is working and tested against the reference implementation.
910

1011
### Supported transport types:
11-
We plan to support most of the basic ZMQ sockets. The current list is as follows:
12+
1213
* TCP
1314
* IPC (unix only)
1415

1516
### Supported socket patterns:
16-
We plan to support most of the basic ZMQ messaging patterns. The current list is as follows:
17+
1718
* Request/Response (REQ, REP, DEALER, ROUTER)
1819
* Publish/Subscribe (PUB, SUB)
1920
* Pipeline (PUSH, PULL)
2021

2122
## Usage
23+
2224
See the [examples](examples) for some ways to get up and running quickly. You can also generate the documentation by doing `cargo doc --open` on the source code.
2325

2426
### Choosing your async runtime
25-
The project currently supports both [`tokio`](tokio.rs) and [`async-std`](async.rs), controllable via feature flags. `tokio` is used by default. If you want to use `async-std`, you would disable the default features, and then select the `async-std-runtime` feature. For example in your `Cargo.toml`, you might specify the dependency as follows:
27+
28+
The project currently supports [`tokio`](tokio.rs), [`async-std`](async.rs), and [`async-dispatcher`](https://github.com/zed-industries/async-dispatcher) controllable via feature flags. `tokio` is used by default. If you want to use `async-std`, you would disable the default features, and then select the `async-std-runtime` feature. For example in your `Cargo.toml`, you might specify the dependency as follows:
29+
2630
```toml
2731
zeromq = { version = "*", default-features = false, features = ["async-std-runtime", "all-transport"] }
2832
```
2933

3034
See the section about feature flags for more info.
3135

3236
### Feature Flags
37+
3338
Feature flags provide a way to customize the functionality provided by this library. Refer to [the cargo guide](https://doc.rust-lang.org/cargo/reference/features.html) for more info.
3439

3540
Features:
3641
- (default) `tokio-runtime`: Use `tokio` as your async runtime.
3742
- `async-std-runtime`: Use `async-std` as your async runtime.
43+
- `async-dispatcher-runtime`: Use `async-dispatcher` as your async runtime.
3844
- (default) `all-transport`: Enable all the `*-transport` flags
3945
- `ipc-transport`: Enable IPC as a transport mechanism
4046
- `tcp-transport`: Enable TCP as a transport mechanism
4147

4248
## Contributing
49+
4350
Contributions are welcome! See our issue tracker for a list of the things we need help with.
4451

4552
## Questions
53+
4654
You can ask quesions in our Discord channel - https://discord.gg/pFXSqWtjQT
4755

4856
## Useful links
57+
4958
* https://rfc.zeromq.org/
5059
* https://rfc.zeromq.org/spec:23/ZMTP/
5160
* https://rfc.zeromq.org/spec:28/REQREP/

0 commit comments

Comments
 (0)