All Projects → oronsh → raftor

oronsh / raftor

Licence: other
Distributed chat system built with rust

Programming Languages

rust
11053 projects
HTML
75241 projects

Projects that are alternatives of or similar to raftor

Zatt
Python implementation of the Raft algorithm for distributed consensus
Stars: ✭ 119 (+283.87%)
Mutual labels:  distributed-systems, raft, consensus
Atomix
A reactive Java framework for building fault-tolerant distributed systems
Stars: ✭ 2,182 (+6938.71%)
Mutual labels:  distributed-systems, raft, consensus
little-raft
The lightest distributed consensus library. Run your own replicated state machine! ❤️
Stars: ✭ 316 (+919.35%)
Mutual labels:  distributed-systems, raft, consensus
Etcd
Distributed reliable key-value store for the most critical data of a distributed system
Stars: ✭ 38,238 (+123248.39%)
Mutual labels:  distributed-systems, raft, consensus
Nuraft
C++ implementation of Raft core logic as a replication library
Stars: ✭ 428 (+1280.65%)
Mutual labels:  distributed-systems, raft, consensus
Bifrost
Pure rust building block for distributed systems
Stars: ✭ 118 (+280.65%)
Mutual labels:  distributed-systems, raft, consensus
Verdi Raft
An implementation of the Raft distributed consensus protocol, verified in Coq using the Verdi framework
Stars: ✭ 143 (+361.29%)
Mutual labels:  distributed-systems, raft, consensus
coolbeans
Coolbeans is a distributed work queue that implements the beanstalkd protocol.
Stars: ✭ 56 (+80.65%)
Mutual labels:  distributed-systems, raft, consensus
Raft
Raft Consensus Algorithm
Stars: ✭ 370 (+1093.55%)
Mutual labels:  distributed-systems, raft, consensus
Dragonboat
Dragonboat is a high performance multi-group Raft consensus library in pure Go.
Stars: ✭ 3,983 (+12748.39%)
Mutual labels:  distributed-systems, raft, consensus
Hraftd
A reference use of Hashicorp's Raft implementation
Stars: ✭ 732 (+2261.29%)
Mutual labels:  distributed-systems, raft, consensus
Copycat
A novel implementation of the Raft consensus algorithm
Stars: ✭ 551 (+1677.42%)
Mutual labels:  distributed-systems, raft, consensus
Rqlite
The lightweight, distributed relational database built on SQLite
Stars: ✭ 9,147 (+29406.45%)
Mutual labels:  distributed-systems, raft, consensus
Raft Rs
Raft distributed consensus algorithm implemented in Rust.
Stars: ✭ 1,859 (+5896.77%)
Mutual labels:  distributed-systems, raft
Jupiter
Jupiter是一款性能非常不错的, 轻量级的分布式服务框架
Stars: ✭ 1,372 (+4325.81%)
Mutual labels:  distributed-systems, cluster
slock
High-performance distributed sync service and atomic DB
Stars: ✭ 50 (+61.29%)
Mutual labels:  raft, cluster
Swim Js
JavaScript implementation of SWIM membership protocol
Stars: ✭ 135 (+335.48%)
Mutual labels:  distributed-systems, consensus
Library
Collection of papers in the field of distributed systems, game theory, cryptography, cryptoeconomics, zero knowledge
Stars: ✭ 100 (+222.58%)
Mutual labels:  distributed-systems, consensus
Fluentdispatch
🌊 .NET Standard 2.1 framework which makes easy to scaffold distributed systems and dispatch incoming load into units of work in a deterministic way.
Stars: ✭ 152 (+390.32%)
Mutual labels:  distributed-systems, cluster
Mit 6.824 2018
Solutions to mit 6.824 2018
Stars: ✭ 158 (+409.68%)
Mutual labels:  distributed-systems, raft

raftor

Distributed websocket chat

this is an experimental project that distribute websocket connections over a cluster.

This project is built on top of actix and actix-raft

How to run

In Config.toml list your nodes under [[nodes]]

Every node has a private_addr and a public_addr

private_addr is the network address used for internal communication

and public_addr is the network address exposed to the world.

cargo run CLUSTER_ADDRESS APP_ADDRESS PUBLIC_ADDRESS

Run in single node cargo run 127.0.0.1:8000 127.0.0.1:9000 127.0.0.1:8080

Run cluster

cargo run 127.0.0.1:8000 127.0.0.1:9000 127.0.0.1:8080

cargo run 127.0.0.1:8001 127.0.0.1:9001 127.0.0.1:8081

cargo run 127.0.0.1:8002 127.0.0.1:9002 127.0.0.1:8082

API

Create room /room/<Name>

TODO:

  • Initiate cluster discovery
  • Implement actix-raft
  • Verify raft is working and replicating state across cluster
  • Refactor hash_ring to Arc in order to reduce complexity
  • Error handling
  • Fix rejoin bug
  • Rehash entities when hash ring topology changes
  • Building js client
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].