Go to file
Alex Auvolat b490ebc7f6
Many improvements on ring/replication and its configuration:
- Explicit "replication_mode" configuration parameters that takes
  either "none", "2" or "3" as values, instead of letting user configure
  replication factor themselves. These are presets whose corresponding
  replication/quorum values can be found in replication/mode.rs

- Explicit support for single-node and two-node deployments
  (number of nodes must be at least "replication_mode", with "none"
  we can have only one node)

- Ring is now stored much more compactly with 256*8 + n*32 bytes,
  instead of 256*32 bytes

- Support for gateway-only nodes that do not store data
  (these nodes still need a metadata_directory to store the list
  of bucket and keys since those are stored on all nodes; it also
  technically needs a data_directory to start but it will stay
  empty unless we have bugs)
2021-05-28 14:07:36 +02:00
doc Add links to git/matrix/drone on top of documentation 2021-05-03 10:45:45 +02:00
script Many improvements on ring/replication and its configuration: 2021-05-28 14:07:36 +02:00
src Many improvements on ring/replication and its configuration: 2021-05-28 14:07:36 +02:00
.dockerignore Build Docker image 2020-06-30 17:18:42 +02:00
.drone.yml add clippy to the CI 2021-05-03 22:11:37 +02:00
.gitignore Work on API 2020-04-28 10:18:14 +00:00
Cargo.lock S3 API: support ListBuckets 2021-05-03 21:55:30 +02:00
Cargo.toml Skeleton to the new web API 2020-11-02 15:48:39 +01:00
config.dev.toml Build path correctly 2020-11-11 19:48:01 +01:00
Dockerfile change dockerfile; add gzip caching 2021-02-10 12:53:00 +01:00
genkeys.sh Cleanup 2020-04-12 19:18:31 +02:00
LICENSE Switch to AGPL 2021-03-16 16:35:46 +01:00
Makefile Improve bootstraping: do it regularly; persist peer list 2021-04-27 16:37:08 +02:00
README.md Drone CI badge on branch main 2021-04-27 16:37:08 +02:00
rustfmt.toml Fix the Sync issue. Details: 2020-04-10 22:01:48 +02:00
TODO update todo 2020-04-26 20:50:23 +00:00

Garage Build Status

Garage logo

Garage is a lightweight S3-compatible distributed object store, with the following goals:

  • As self-contained as possible
  • Easy to set up
  • Highly resilient to network failures, network latency, disk failures, sysadmin failures
  • Relatively simple
  • Made for multi-datacenter deployments

Non-goals include:

  • Extremely high performance
  • Complete implementation of the S3 API
  • Erasure coding (our replication model is simply to copy the data as is on several nodes, in different datacenters if possible)

Our main use case is to provide a distributed storage layer for small-scale self hosted services such as Deuxfleurs.

Go to the documentation