aboutsummaryrefslogtreecommitdiff
path: root/doc/book
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2022-09-08 15:49:17 +0200
committerAlex Auvolat <alex@adnab.me>2022-09-08 15:49:17 +0200
commitd9d199a6c9c0ae2a6ee2b04103c78ef1eb311956 (patch)
tree53429d4faa2e696dd798515e2db493bc78ba5e48 /doc/book
parentd23b3a14fc28de164080e762f0e97e6cbc868940 (diff)
parent03c40a0b24dd5bd2a51d3cd3df0ca1a42fb2d328 (diff)
downloadgarage-d9d199a6c9c0ae2a6ee2b04103c78ef1eb311956.tar.gz
garage-d9d199a6c9c0ae2a6ee2b04103c78ef1eb311956.zip
Merge branch 'main' into lx-perf-improvements
Diffstat (limited to 'doc/book')
-rw-r--r--doc/book/cookbook/from-source.md49
1 files changed, 33 insertions, 16 deletions
diff --git a/doc/book/cookbook/from-source.md b/doc/book/cookbook/from-source.md
index 5973d411..2b93da47 100644
--- a/doc/book/cookbook/from-source.md
+++ b/doc/book/cookbook/from-source.md
@@ -20,6 +20,24 @@ sudo apt-get update
sudo apt-get install build-essential
```
+## Using source from the Gitea repository (recommended)
+
+The primary location for Garage's source code is the
+[Gitea repository](https://git.deuxfleurs.fr/Deuxfleurs/garage).
+
+Clone the repository and build Garage with the following commands:
+
+```bash
+git clone https://git.deuxfleurs.fr/Deuxfleurs/garage.git
+cd garage
+cargo build
+```
+
+Be careful, as this will make a debug build of Garage, which will be extremely slow!
+To make a release build, invoke `cargo build --release` (this takes much longer).
+
+The binaries built this way are found in `target/{debug,release}/garage`.
+
## Using source from `crates.io`
Garage's source code is published on `crates.io`, Rust's official package repository.
@@ -39,21 +57,20 @@ sudo cp $HOME/.cargo/bin/garage /usr/local/bin/garage
```
-## Using source from the Gitea repository
-
-The primary location for Garage's source code is the
-[Gitea repository](https://git.deuxfleurs.fr/Deuxfleurs/garage).
-
-Clone the repository and build Garage with the following commands:
-
-```bash
-git clone https://git.deuxfleurs.fr/Deuxfleurs/garage.git
-cd garage
-cargo build
-```
-
-Be careful, as this will make a debug build of Garage, which will be extremely slow!
-To make a release build, invoke `cargo build --release` (this takes much longer).
+## Selecting features to activate in your build
-The binaries built this way are found in `target/{debug,release}/garage`.
+Garage supports a number of compilation options in the form of Cargo features,
+which can be used to provide builds adapted to your system and your use case.
+The following features are available:
+| Feature | Enabled | Description |
+| ------- | ------- | ----------- |
+| `bundled-libs` | BY DEFAULT | Use bundled version of sqlite3, zstd, lmdb and libsodium |
+| `system-libs` | optional | Use system version of sqlite3, zstd, lmdb and libsodium if available (exclusive with `bundled-libs`, build using `cargo build --no-default-features --features system-libs`) |
+| `k2v` | optional | Enable the experimental K2V API (if used, all nodes on your Garage cluster must have it enabled as well) |
+| `kubernetes-discovery` | optional | Enable automatic registration and discovery of cluster nodes through the Kubernetes API |
+| `metrics` | BY DEFAULT | Enable collection of metrics in Prometheus format on the admin API |
+| `telemetry-otlp` | optional | Enable collection of execution traces using OpenTelemetry |
+| `sled` | BY DEFAULT | Enable using Sled to store Garage's metadata |
+| `lmdb` | optional | Enable using LMDB to store Garage's metadata |
+| `sqlite` | optional | Enable using Sqlite3 to store Garage's metadata |