https://github.com/sile/plumcast
A message broadcasting library based on the Plumtree/HyParView algorithms
https://github.com/sile/plumcast
broadcast hyparview plumtree rust
Last synced: 11 months ago
JSON representation
A message broadcasting library based on the Plumtree/HyParView algorithms
- Host: GitHub
- URL: https://github.com/sile/plumcast
- Owner: sile
- License: mit
- Created: 2018-07-14T05:32:28.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2021-10-23T01:11:33.000Z (over 4 years ago)
- Last Synced: 2025-03-25T07:12:37.540Z (over 1 year ago)
- Topics: broadcast, hyparview, plumtree, rust
- Language: Rust
- Size: 79.1 KB
- Stars: 31
- Watchers: 3
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
plumcast
========
[](https://crates.io/crates/plumcast)
[](https://docs.rs/plumcast)
[](https://github.com/sile/plumcast/actions)
[](https://coveralls.io/github/sile/plumcast?branch=master)
[](LICENSE)
A message broadcasting library based on the Plumtree/HyParView algorithms.
[Documentation](https://docs.rs/plumcast)
Properties
----------
### Pros
- Nearly optimal message transmitting count
- Usually messages are broadcasted via a spanning tree
- Only the nodes interested in the same messages belong to the same cluster
- Scalable
- Theoretically, it can handle ten-thousand of nodes or more
- High fault tolerance
- Spanning trees are automatically repaired if there are crashed nodes
- Dynamic membership
- Nodes can be added to (removed from) a cluster at any time
### Cons
- No strong guarantee about connectivity of the nodes in a cluster
- No strong guarantee about delivery count of a message
- No guarantee about messages delivery order
If some of the above guarantees are mandatory for your application,
it is need to be provided by upper layers.
References
----------
- [HyParView: a membership protocol for reliable gossip-based broadcast][HyParView]
- [Plumtree: Epidemic Broadcast Trees][Plumtree]
[HyParView]: http://asc.di.fct.unl.pt/~jleitao/pdf/dsn07-leitao.pdf
[Plumtree]: http://www.gsd.inesc-id.pt/~ler/reports/srds07.pdf