feat(tvix/store): add redb PathInfoService

This provides a PathInfoService implementation using redb
(https://github.com/cberner/redb) as the underlying storage engine.

Both an in-memory variant, as well as a filesystem one is provided,
similar how it's done with the sled implementation.

Supersedes: https://cl.tvl.fyi/c/depot/+/11692
Change-Id: I744619c51bf2efd0fb63659b12a27cbe0b2fd6fc
Signed-off-by: Ilan Joselevich <personal@ilanjoselevich.com>
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11995
Reviewed-by: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
This commit is contained in:
Ilan Joselevich 2024-07-21 00:36:19 +02:00 committed by clbot
parent dbe698042d
commit 9f10a71ec5
10 changed files with 318 additions and 0 deletions

View file

@ -10068,6 +10068,37 @@ rec {
"web_spin_lock" = [ "dep:wasm_sync" ];
};
};
"redb" = rec {
crateName = "redb";
version = "2.1.1";
edition = "2021";
sha256 = "1h68d2gqq4vpwiyfpyq9ag0swxavnf9npcd0cqipv77brp9j1pd6";
type = [ "cdylib" "rlib" ];
authors = [
"Christopher Berner <christopherberner@gmail.com>"
];
dependencies = [
{
name = "libc";
packageId = "libc";
target = { target, features }: (target."unix" or false);
}
];
devDependencies = [
{
name = "libc";
packageId = "libc";
target = { target, features }: (!("wasi" == target."os" or null));
}
];
features = {
"log" = [ "dep:log" ];
"logging" = [ "log" ];
"pyo3" = [ "dep:pyo3" ];
"pyo3-build-config" = [ "dep:pyo3-build-config" ];
"python" = [ "pyo3" "pyo3-build-config" ];
};
};
"redox_syscall 0.2.16" = rec {
crateName = "redox_syscall";
version = "0.2.16";
@ -15647,6 +15678,10 @@ rec {
name = "prost";
packageId = "prost 0.13.1";
}
{
name = "redb";
packageId = "redb";
}
{
name = "serde";
packageId = "serde";
@ -16406,6 +16441,10 @@ rec {
name = "prost";
packageId = "prost 0.13.1";
}
{
name = "redb";
packageId = "redb";
}
{
name = "reqwest";
packageId = "reqwest";