feat(tvix/store): initial dummy implementation

This replaces the hello world example from tvix-store with an actual
gRPC endpoint, implementing all of BlobService, DirectoryService and
PathInfoService.

All RPC methods currently respond with the unimplemented gRPC status.

Co-Authored-By: Márton Boros <martonboros@gmail.com>
Change-Id: Ieba333cca44dc1e3f2ffbe676ba7a99e672b9bfb
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7664
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
This commit is contained in:
Florian Klink 2022-12-28 16:40:28 +01:00 committed by flokli
parent d22a9c8610
commit 58f5ff2c17
7 changed files with 175 additions and 22 deletions

View file

@ -0,0 +1,34 @@
use tokio_stream::wrappers::ReceiverStream;
use crate::proto::blob_service_server::BlobService;
use crate::proto::BlobChunk;
use crate::proto::BlobMeta;
use crate::proto::PutBlobResponse;
use crate::proto::ReadBlobRequest;
use crate::proto::StatBlobRequest;
use tonic::{Request, Response, Result, Status, Streaming};
pub struct DummyBlobService {}
#[tonic::async_trait]
impl BlobService for DummyBlobService {
type ReadStream = ReceiverStream<Result<BlobChunk>>;
async fn stat(&self, _request: Request<StatBlobRequest>) -> Result<Response<BlobMeta>> {
Err(Status::unimplemented("not implemented"))
}
async fn read(
&self,
_request: Request<ReadBlobRequest>,
) -> Result<Response<Self::ReadStream>, Status> {
Err(Status::unimplemented("not implemented"))
}
async fn put(
&self,
_request: Request<Streaming<BlobChunk>>,
) -> Result<Response<PutBlobResponse>> {
Err(Status::unimplemented("not implemented"))
}
}