aboutsummaryrefslogtreecommitdiff
path: root/TODO
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-03-03 19:09:03 +0800
committerGravatar Runxi Yu2026-03-03 19:09:03 +0800
commite67fbfc75de011c2c7685ae7a10dfce702b2a620 (patch)
treea5f8fb8c6a37d709531b0b40f6a9ea4d41484b31 /TODO
parentobjectstore/packed: Check pack/idx checksums here. (diff)
signatureNo signature
TODO: What we need before we do the network protocols?
Diffstat (limited to 'TODO')
-rw-r--r--TODO17
1 files changed, 17 insertions, 0 deletions
diff --git a/TODO b/TODO
new file mode 100644
index 00000000..e1933f3a
--- /dev/null
+++ b/TODO
@@ -0,0 +1,17 @@
+Some basics to implement before we could really have network
+protocols:
+
+For client-side fetch, and server-side receive, we'll need:
+* Creating indexes (.idx, .rev) from packs (streaming API)
+* A streaming hash verifier for the pack ingestion path.
+* Other things involving pack ingestion, such as reading and
+ validating the pack header, un-thinning thin objects, streaming
+ byte to a quarantined .pack while hashing the trailer, checking the
+ trailer near the end.
+
+For client-side send, and server-side upload, we'll need:
+* Reachability walk (always iterators or otherwise streaming;
+ haves/wants; never an entire slice/map of OIDs)
+* Delta compression based on FastCDC; see 9front git
+* Using bitmaps
+* Investigate in detail the architecture of creating thin packs