trinity-1686a b0840ab256 emit headers on Not Modified per RFC-9110, fix #1330 (#1340)
also fix a small information disclosure where a client with valid token, but no encryption keys, can use Not Modified has an oracle to know if etag matches or not

Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1340
Co-authored-by: trinity-1686a <trinity@deuxfleurs.fr>
Co-committed-by: trinity-1686a <trinity@deuxfleurs.fr>
2026-02-15 11:00:31 +00:00
2026-02-14 19:25:47 +01:00
2026-01-24 09:56:02 +01:00
2026-01-29 14:53:27 +01:00
2020-06-30 17:18:42 +02:00
2023-01-04 18:35:10 +01:00
2023-01-04 18:35:10 +01:00
2026-02-14 19:25:49 +00:00
2025-02-03 16:39:50 +01:00
2025-02-03 16:39:50 +01:00
2026-01-24 10:36:19 +01:00
2026-01-29 14:53:27 +01:00
2021-03-16 16:35:46 +01:00
2020-04-10 22:01:48 +02:00

Garage status-badge

Garage logo

[ Website and documentation | Binary releases | Git repository | Matrix channel ]

Garage is an S3-compatible distributed object storage service designed for self-hosting at a small-to-medium scale.

Garage is designed for storage clusters composed of nodes running at different physical locations, in order to easily provide a storage service that replicates data at these different locations and stays available even when some servers are unreachable. Garage also focuses on being lightweight, easy to operate, and highly resilient to machine failures.

Garage is built by Deuxfleurs, an experimental small-scale self hosted service provider, which has been using it in production since its first release in 2020.

Learn more on our dedicated documentation pages:

Garage is entirely free software released under the terms of the AGPLv3.

S
Description
S3-compatible object store for small self-hosted geo-distributed deployments.
Readme AGPL-3.0 52 MiB
Languages
Rust 95.1%
Shell 1.6%
Clojure 1.5%
Nix 1.1%
Python 0.5%
Other 0.2%