From 91d42e96aad6b725e588350b62e383da54991ed2 Mon Sep 17 00:00:00 2001 From: Scott Worley Date: Mon, 16 Mar 2026 16:13:35 -0700 Subject: [PATCH 1/1] README --- README.md | 5 +++++ parity.png | Bin 0 -> 7848 bytes 2 files changed, 5 insertions(+) create mode 100644 README.md create mode 100644 parity.png diff --git a/README.md b/README.md new file mode 100644 index 0000000..9e7fb71 --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +# annex-ec + +Use erasure codes (par2) to use storage more efficiently than `numcopies`. + +![parity](annex-ec/blob_plain/HEAD:/parity.png) diff --git a/parity.png b/parity.png new file mode 100644 index 0000000000000000000000000000000000000000..9b34373e22f95b55ea36d52ddf4426f4ac0799a9 GIT binary patch literal 7848 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