All Projects → ShisoftResearch → Bifrost

ShisoftResearch / Bifrost

Licence: mit
Pure rust building block for distributed systems

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Bifrost

Rqlite
The lightweight, distributed relational database built on SQLite
Stars: ✭ 9,147 (+7651.69%)
Mutual labels:  consensus, raft, distributed-systems
coolbeans
Coolbeans is a distributed work queue that implements the beanstalkd protocol.
Stars: ✭ 56 (-52.54%)
Mutual labels:  distributed-systems, raft, consensus
Atomix
A reactive Java framework for building fault-tolerant distributed systems
Stars: ✭ 2,182 (+1749.15%)
Mutual labels:  consensus, raft, distributed-systems
raftor
Distributed chat system built with rust
Stars: ✭ 31 (-73.73%)
Mutual labels:  distributed-systems, raft, consensus
Nuraft
C++ implementation of Raft core logic as a replication library
Stars: ✭ 428 (+262.71%)
Mutual labels:  consensus, raft, distributed-systems
Verdi Raft
An implementation of the Raft distributed consensus protocol, verified in Coq using the Verdi framework
Stars: ✭ 143 (+21.19%)
Mutual labels:  consensus, raft, distributed-systems
little-raft
The lightest distributed consensus library. Run your own replicated state machine! ❤️
Stars: ✭ 316 (+167.8%)
Mutual labels:  distributed-systems, raft, consensus
Zatt
Python implementation of the Raft algorithm for distributed consensus
Stars: ✭ 119 (+0.85%)
Mutual labels:  consensus, raft, distributed-systems
Raft
Raft Consensus Algorithm
Stars: ✭ 370 (+213.56%)
Mutual labels:  consensus, raft, distributed-systems
Dragonboat
Dragonboat is a high performance multi-group Raft consensus library in pure Go.
Stars: ✭ 3,983 (+3275.42%)
Mutual labels:  consensus, raft, distributed-systems
FISCO-BCOS
FISCO BCOS是由微众牵头的金链盟主导研发、对外开源、安全可控的企业级金融区块链底层技术平台。 单链配置下,性能TPS可达万级。提供群组架构、并行计算、分布式存储、可插拔的共识机制、隐私保护算法、支持全链路国密算法等诸多特性。 经过多个机构、多个应用,长时间在生产环境中的实践检验,具备金融级的高性能、高可用性及高安全性。FISCO BCOS is a secure and reliable financial-grade open-source blockchain platform. The platform provides rich features including group architecture, cross-chain communication protoc…
Stars: ✭ 1,603 (+1258.47%)
Mutual labels:  raft, consensus, rpc
Hraftd
A reference use of Hashicorp's Raft implementation
Stars: ✭ 732 (+520.34%)
Mutual labels:  consensus, raft, distributed-systems
Copycat
A novel implementation of the Raft consensus algorithm
Stars: ✭ 551 (+366.95%)
Mutual labels:  consensus, raft, distributed-systems
Etcd
Distributed reliable key-value store for the most critical data of a distributed system
Stars: ✭ 38,238 (+32305.08%)
Mutual labels:  consensus, raft, distributed-systems
Finagle
A fault tolerant, protocol-agnostic RPC system
Stars: ✭ 8,126 (+6786.44%)
Mutual labels:  rpc, distributed-systems
Consensus Yaraft
consensus-yaraft is a library for distributed, strong consistent, highly replicated log storage. It's based on yaraft, which is an implementation of the Raft protocol.
Stars: ✭ 30 (-74.58%)
Mutual labels:  consensus, raft
X0
Xzero HTTP Application Server
Stars: ✭ 111 (-5.93%)
Mutual labels:  consensus, raft
Blog
my blog, using markdown
Stars: ✭ 25 (-78.81%)
Mutual labels:  raft, distributed-systems
6.824 2018
MIT 6.824 2018 lab. MIT6.824分布式系统(2018秋)
Stars: ✭ 59 (-50%)
Mutual labels:  raft, distributed-systems
Trepang
Trepang is an implementation of Raft Algorithm in Go
Stars: ✭ 111 (-5.93%)
Mutual labels:  consensus, raft

bifrost

Build Status

Pure rust building block for distributed systems

Objective

The objective of bifrost is to build a solid foundation for distributed systems in rust. It is similar to one of my Clojure project cluster-connecter, but no longer require any third-party software like Zookeeper or etcd. Bifrost will ship with it's own reliable data store based on raft consensus algorithm state machines. Users are also able to build their own reliable data structures by implementing state machine commands.

Bifrost is still in very early stage of development and it is not suggested to be used in any kinds of projects until it is stabilized and fully tested

Progress Check List

  • [ ] RPC
    • [x] TCP Server
    • [x] Protocol
    • [x] Event driven server
    • [x] Sync client
    • [x] Async client
    • [X] Multiplexing pluggable services
    • [X] Shortcut (for both TCP and RPC APIs)
  • [ ] Raft (data replication)
    • [x] Leader election
    • [x] Log replication
    • [x] Master/subs state machine framework
    • [ ] State machine client
      • [x] Sync
      • [x] PubSub
    • [ ] Master state machine snapshot
      • [x] Generate
      • [x] Install
      • [ ] Generate in chunks
      • [ ] Install in chunks
      • [ ] Automation
      • [ ] Persistent to disk
      • [ ] Recover from disk
      • [ ] Incremental snapshot
    • [ ] Membership changes
      • [x] State machine
        • [x] New Member
        • [x] Delete Member
        • [x] Snapshot
        • [x] Recover
      • [X] Interfaces
      • [X] Update procedures
    • [x] Cluster bootstrap
    • [x] Client
      • [x] Command
      • [x] Query
        • [x] Concurrency
      • [x] Failover
      • [x] Membership changes
      • [x] Subscription
    • [ ] Raft Group
    • [ ] Tests
      • [x] State machine framework
      • [x] Leader selection
      • [x] Log replication
      • [ ] Snapshot
      • [ ] Membership changes
        • [x] New member
        • [x] Delete member
      • [ ] Safety
      • [ ] Stress and benchmark
      • [ ] Stress + Safety
  • [ ] Sharding
    • [x] Consistent hash
  • [ ] Reliable data store
    • [x] Client group membership
    • [x] Client group leader election
    • [x] Map
    • [ ] Set
    • [ ] Array
    • [ ] Queue
    • [x] Value
    • [x] Number
    • [ ] Lock
  • [ ] Integration (API)
    • [ ] gPRC
  • [ ] Utility
  • [x] Consistent hashing
  • [x] Vector clock
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].