feat(tvix/castore/blobsvc): add object storage implementation
This uses the `object_store` crate to expose a tvix-castore BlobService backed by object storage. It's using FastCDC to chunk blobs into smaller chunks when writing to it. These are exposed at the .chunks() method. Change-Id: I2858c403d4d6490cdca73ebef03c26290b2b3c8e Reviewed-on: https://cl.tvl.fyi/c/depot/+/11076 Reviewed-by: Connor Brewster <cbrewster@hey.com> Tested-by: BuildkiteCI Reviewed-by: Brian Olsen <me@griff.name>
This commit is contained in:
parent
d327bf775d
commit
1c2db676a0
6 changed files with 1271 additions and 9 deletions
|
|
@ -10,6 +10,7 @@ mod from_addr;
|
|||
mod grpc;
|
||||
mod memory;
|
||||
mod naive_seeker;
|
||||
mod object_store;
|
||||
mod simplefs;
|
||||
mod sled;
|
||||
|
||||
|
|
@ -21,6 +22,7 @@ pub use self::combinator::CombinedBlobService;
|
|||
pub use self::from_addr::from_addr;
|
||||
pub use self::grpc::GRPCBlobService;
|
||||
pub use self::memory::MemoryBlobService;
|
||||
pub use self::object_store::ObjectStoreBlobService;
|
||||
pub use self::simplefs::SimpleFilesystemBlobService;
|
||||
pub use self::sled::SledBlobService;
|
||||
|
||||
|
|
@ -80,4 +82,5 @@ pub trait BlobReader: tokio::io::AsyncRead + tokio::io::AsyncSeek + Send + Unpin
|
|||
impl BlobReader for io::Cursor<&'static [u8]> {}
|
||||
impl BlobReader for io::Cursor<&'static [u8; 0]> {}
|
||||
impl BlobReader for io::Cursor<Vec<u8>> {}
|
||||
impl BlobReader for io::Cursor<bytes::Bytes> {}
|
||||
impl BlobReader for tokio::fs::File {}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue