Crates.io | rubbish |
lib.rs | rubbish |
version | 0.1.0 |
source | src |
created_at | 2017-01-29 22:44:38.294516 |
updated_at | 2017-01-29 22:44:38.294516 |
description | Rubbish - Sort of like Chubby, but in Rust .. Rubbish. |
homepage | https://github.com/djmitche/rubbish |
repository | https://github.com/djmitche/rubbish |
max_upload_size | |
id | 8298 |
size | 30,962 |
Rubbish is a lock service and low-volume storage service with strong consistency guarantees, designed to provide the basis for loosely-coupled distributed systems.
It's also a chance to get some practice writing a full-sized application in Rust.
The components of the system are as follows:
cas
-- a distributed, content-addressible, in-memory storage system. The
system uses a "gossip"-style protocol to ensure that all participants have
all content, and supports generational garbage collection and persistence
to disk.
fs
-- a Git-like versioned filesystem, based on cas
. This includes
the idea of a "commit" with parent commits and a nested tree structure
associated with each commit.
prax
-- a distributed consensus service, designed to vote on the current
head of the treeish commit tree and to define the current "master" node.
tip
-- a layer on top of treeish and prax, supporting
remote client operations such as read, write, check-and-swap, and advisory
locks. The provided client interface is HTTP.
The entire application is, of course, a work in progress.
Finish this application in a non-networked state