feat(tvix/castore): simple filesystem blob service
The simple filesystem `BlobService` enable a user to write blob store on an existing filesystem using a prefix-style layout in the provided root directory, e.g. the two first bytes of the blake3 hashes are used as directories prefixes. Change-Id: I3451a688a6f39027b9c6517d853b95a87adb3a52 Reviewed-on: https://cl.tvl.fyi/c/depot/+/10071 Autosubmit: raitobezarius <tvl@lahfa.xyz> Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
This commit is contained in:
parent
923a5737e6
commit
0ae32d45f6
6 changed files with 316 additions and 1 deletions
|
|
@ -7,6 +7,7 @@ mod from_addr;
|
|||
mod grpc;
|
||||
mod memory;
|
||||
mod naive_seeker;
|
||||
mod simplefs;
|
||||
mod sled;
|
||||
|
||||
#[cfg(test)]
|
||||
|
|
@ -15,6 +16,7 @@ mod tests;
|
|||
pub use self::from_addr::from_addr;
|
||||
pub use self::grpc::GRPCBlobService;
|
||||
pub use self::memory::MemoryBlobService;
|
||||
pub use self::simplefs::SimpleFilesystemBlobService;
|
||||
pub use self::sled::SledBlobService;
|
||||
|
||||
/// The base trait all BlobService services need to implement.
|
||||
|
|
@ -51,3 +53,4 @@ pub trait BlobReader: tokio::io::AsyncRead + tokio::io::AsyncSeek + Send + Unpin
|
|||
|
||||
/// A [`io::Cursor<Vec<u8>>`] can be used as a BlobReader.
|
||||
impl BlobReader for io::Cursor<Vec<u8>> {}
|
||||
impl BlobReader for tokio::fs::File {}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue