tvl-depot/tvix/castore
Connor Brewster 259d7a3cfa refactor(tvix/castore): generalize store ingestion streams
Previously the store ingestion code was coupled to `walkdir::DirEntry`s
produced by the `walkdir` crate which made it impossible to reuse
ingesting from other sources like tarballs or NARs.

This introduces a `IngestionEntry` which carries enough information for
store ingestion and a future for computing the Blake3 digest of files.
This allows the producer to perform file uploads in a way that makes
sense for the source, ie. the filesystem upload could concurrently
upload multiple files at the same time, while the NAR ingestor will need
to ingest the entire blob before yielding the next blob in the stream.
In the future we can buffer small blobs and upload them concurrently,
but the full blob still needs to be read from the NAR before advancing.

Change-Id: I6d144063e2ba5b05e765bac1f27d41b3c8e7b283
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11462
Reviewed-by: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
2024-04-19 20:37:05 +00:00
..
docs docs(tvix/castore/blobstore): reorganize docs 2024-02-06 18:28:00 +00:00
protos docs(tvix/castore/directorysvc): K/V is not necessarily flat 2024-02-20 09:17:38 +00:00
src refactor(tvix/castore): generalize store ingestion streams 2024-04-19 20:37:05 +00:00
build.rs feat(tvix/castore): derive Eq and Hash automatically 2024-03-20 21:19:02 +00:00
Cargo.toml fix(tvix/castore/directory): fix graph traversal 2024-04-15 14:47:12 +00:00
default.nix feat(tvix/castore/directory): add bigtable backend 2024-04-09 15:50:34 +00:00