about summary refs log blame commit diff
path: root/tvix/castore/Cargo.toml
blob: aa44e2e8ee4b7cbcce700c08c402e272155aabc4 (plain) (tree)
1
2
3
4
5
6





                     









                                                                            



                                                        








                                                                                                   
                                                            






                                                   
                                  


                                   
                                                   










                                                          
                                
                   
 
                    

                                  

                  







                                    
                                 

          
                   
         
                    



                       
                                                          











                                                                                
                                           




                                                                      



                                           


                
[package]
name = "tvix-castore"
version = "0.1.0"
edition = "2021"

[dependencies]
async-compression = { workspace = true, features = ["tokio", "zstd"] }
async-stream = { workspace = true }
async-tempfile = { workspace = true }
blake3 = { workspace = true, features = ["rayon", "std", "traits-preview"] }
bstr = { workspace = true }
bytes = { workspace = true }
data-encoding = { workspace = true }
digest = { workspace = true }
fastcdc = { workspace = true, features = ["tokio"] }
futures = { workspace = true }
object_store = { workspace = true, features = ["http"] }
parking_lot = { workspace = true }
pin-project-lite = { workspace = true }
prost = { workspace = true }
thiserror = { workspace = true }
tokio-stream = { workspace = true, features = ["fs", "net"] }
tokio-util = { workspace = true, features = ["io", "io-util", "codec"] }
tokio-tar = { workspace = true }
tokio = { workspace = true, features = ["fs", "macros", "net", "rt", "rt-multi-thread", "signal"] }
tonic = { workspace = true }
tower = { workspace = true }
tracing = { workspace = true }
tracing-indicatif = { workspace = true }
tvix-tracing = { path = "../tracing", features = ["tonic"] }
url = { workspace = true }
walkdir = { workspace = true }
zstd = { workspace = true }
serde = { workspace = true, features = ["derive"] }
serde_with = { workspace = true }
serde_qs = { workspace = true }
petgraph = { workspace = true }
pin-project = { workspace = true }
erased-serde = { workspace = true }
serde_tagged = { workspace = true }
hyper-util = { workspace = true }
redb = { workspace = true, features = ["logging"] }
bigtable_rs = { workspace = true, optional = true }
fuse-backend-rs = { workspace = true, optional = true }
libc = { workspace = true, optional = true }
threadpool = { workspace = true, optional = true }
tonic-reflection = { workspace = true, optional = true }
vhost = { workspace = true, optional = true }
vhost-user-backend = { workspace = true, optional = true }
virtio-queue = { workspace = true, optional = true }
vm-memory = { workspace = true, optional = true }
vmm-sys-util = { workspace = true, optional = true }
virtio-bindings = { workspace = true, optional = true }
wu-manber = { workspace = true }
auto_impl = "1.2.0"

[build-dependencies]
prost-build = { workspace = true }
tonic-build = { workspace = true }

[dev-dependencies]
async-process = { workspace = true }
rstest = { workspace = true }
tempfile = { workspace = true }
tokio-retry = { workspace = true }
hex-literal = { workspace = true }
rstest_reuse = { workspace = true }
xattr = { workspace = true }
serde_json = { workspace = true }
tokio-test = { workspace = true }

[features]
default = ["cloud"]
cloud = [
  "dep:bigtable_rs",
  "object_store/aws",
  "object_store/azure",
  "object_store/gcp",
]
fs = ["dep:fuse-backend-rs", "dep:threadpool", "dep:libc"]
virtiofs = [
  "fs",
  "dep:vhost",
  "dep:vhost-user-backend",
  "dep:virtio-queue",
  "dep:vm-memory",
  "dep:vmm-sys-util",
  "dep:virtio-bindings",
  "fuse-backend-rs?/vhost-user-fs", # impl FsCacheReqHandler for SlaveFsCacheReq
  "fuse-backend-rs?/virtiofs",
]
fuse = ["fs"]
tonic-reflection = ["dep:tonic-reflection"]
# It's already possible for other crates to build a
# fully fledged store composition system based on castore composition.
# However, this feature enables anonymous url syntax which might
# inherently expose arbitrary composition possibilities to the user.
xp-store-composition = []
# Whether to run the integration tests.
# Requires the following packages in $PATH:
# cbtemulator, google-cloud-bigtable-tool
integration = []

[lints]
workspace = true