chore(tvix/store): make importable
This allows other crates to import tvix_store. Rename the bin crate to tvix-store-bin, to avoid having multiple crates with the same name (https://github.com/rust-lang/cargo/issues/6313) Change-Id: I857768d6115640dbf102e79ed03e8474090df2fe Reviewed-on: https://cl.tvl.fyi/c/depot/+/7728 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
This commit is contained in:
parent
d0bbc8c821
commit
ceb2c0ba89
6 changed files with 35 additions and 26 deletions
2
tvix/Cargo.lock
generated
2
tvix/Cargo.lock
generated
|
@ -2223,7 +2223,7 @@ dependencies = [
|
|||
]
|
||||
|
||||
[[package]]
|
||||
name = "tvix-store"
|
||||
name = "tvix-store-bin"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
|
|
|
@ -103,10 +103,10 @@ rec {
|
|||
# File a bug if you depend on any for non-debug work!
|
||||
debug = internal.debugCrate { inherit packageId; };
|
||||
};
|
||||
"tvix-store" = rec {
|
||||
packageId = "tvix-store";
|
||||
"tvix-store-bin" = rec {
|
||||
packageId = "tvix-store-bin";
|
||||
build = internal.buildRustCrateWithFeatures {
|
||||
packageId = "tvix-store";
|
||||
packageId = "tvix-store-bin";
|
||||
};
|
||||
|
||||
# Debug support which might change between releases.
|
||||
|
@ -6641,13 +6641,13 @@ rec {
|
|||
];
|
||||
|
||||
};
|
||||
"tvix-store" = rec {
|
||||
crateName = "tvix-store";
|
||||
"tvix-store-bin" = rec {
|
||||
crateName = "tvix-store-bin";
|
||||
version = "0.1.0";
|
||||
edition = "2021";
|
||||
crateBin = [
|
||||
{
|
||||
name = "tvix-store";
|
||||
name = "tvix-store-bin";
|
||||
path = "src/main.rs";
|
||||
requiredFeatures = [ ];
|
||||
}
|
||||
|
@ -6658,6 +6658,7 @@ rec {
|
|||
if (lib.versionOlder builtins.nixVersion "2.4pre20211007")
|
||||
then lib.cleanSourceWith { filter = sourceFilter; src = ./store; }
|
||||
else ./store;
|
||||
libName = "tvix_store";
|
||||
dependencies = [
|
||||
{
|
||||
name = "anyhow";
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
[package]
|
||||
name = "tvix-store"
|
||||
name = "tvix-store-bin"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
[lib]
|
||||
name = "tvix_store"
|
||||
|
||||
[dependencies]
|
||||
anyhow = "1.0.68"
|
||||
blake3 = { version = "1.3.1", features = ["rayon", "std"] }
|
||||
|
|
|
@ -11,7 +11,7 @@ let
|
|||
|
||||
protobufDep = prev: (prev.nativeBuildInputs or [ ]) ++ [ pkgs.protobuf ];
|
||||
in
|
||||
depot.tvix.crates.workspaceMembers.tvix-store.build.override {
|
||||
depot.tvix.crates.workspaceMembers.tvix-store-bin.build.override {
|
||||
# Ensure protobuf dependencies are available.
|
||||
# TODO: figure out a way to embed this directly in the //tvix
|
||||
# crate2nix config.
|
||||
|
@ -28,6 +28,11 @@ depot.tvix.crates.workspaceMembers.tvix-store.build.override {
|
|||
PROTO_ROOT = protoRoot;
|
||||
nativeBuildInputs = protobufDep prev;
|
||||
};
|
||||
|
||||
tvix-store-bin = prev: {
|
||||
PROTO_ROOT = protoRoot;
|
||||
nativeBuildInputs = protobufDep prev;
|
||||
};
|
||||
};
|
||||
|
||||
runTests = true;
|
||||
|
|
10
tvix/store/src/lib.rs
Normal file
10
tvix/store/src/lib.rs
Normal file
|
@ -0,0 +1,10 @@
|
|||
pub mod nixbase32;
|
||||
pub mod nixpath;
|
||||
pub mod proto;
|
||||
|
||||
pub mod dummy_blob_service;
|
||||
pub mod dummy_directory_service;
|
||||
pub mod dummy_path_info_service;
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests;
|
|
@ -1,24 +1,14 @@
|
|||
use crate::proto::blob_service_server::BlobServiceServer;
|
||||
use crate::proto::directory_service_server::DirectoryServiceServer;
|
||||
use crate::proto::path_info_service_server::PathInfoServiceServer;
|
||||
use tvix_store::proto::blob_service_server::BlobServiceServer;
|
||||
use tvix_store::proto::directory_service_server::DirectoryServiceServer;
|
||||
use tvix_store::proto::path_info_service_server::PathInfoServiceServer;
|
||||
|
||||
#[cfg(feature = "reflection")]
|
||||
use crate::proto::FILE_DESCRIPTOR_SET;
|
||||
use tvix_store::proto::FILE_DESCRIPTOR_SET;
|
||||
|
||||
use clap::Parser;
|
||||
use tonic::{transport::Server, Result};
|
||||
use tracing::{info, Level};
|
||||
|
||||
mod dummy_blob_service;
|
||||
mod dummy_directory_service;
|
||||
mod dummy_path_info_service;
|
||||
mod nixbase32;
|
||||
mod nixpath;
|
||||
mod proto;
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests;
|
||||
|
||||
#[derive(Parser)]
|
||||
#[command(author, version, about, long_about = None)]
|
||||
struct Cli {
|
||||
|
@ -44,9 +34,9 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||
|
||||
let mut server = Server::builder();
|
||||
|
||||
let blob_service = dummy_blob_service::DummyBlobService {};
|
||||
let directory_service = dummy_directory_service::DummyDirectoryService {};
|
||||
let path_info_service = dummy_path_info_service::DummyPathInfoService {};
|
||||
let blob_service = tvix_store::dummy_blob_service::DummyBlobService {};
|
||||
let directory_service = tvix_store::dummy_directory_service::DummyDirectoryService {};
|
||||
let path_info_service = tvix_store::dummy_path_info_service::DummyPathInfoService {};
|
||||
|
||||
let mut router = server
|
||||
.add_service(BlobServiceServer::new(blob_service))
|
||||
|
|
Loading…
Reference in a new issue