cuenv_cas/lib.rs
1//! Content-addressed store and action cache for cuenv.
2//!
3//! This crate provides the caching primitives used by the task executor:
4//!
5//! - [`Digest`] — `(sha256, size)` pair identifying a blob.
6//! - [`Cas`] + [`LocalCas`] — a blob store.
7//! - [`ActionCache`] + [`LocalActionCache`] — maps [`Action`] digests to
8//! [`ActionResult`] records.
9//! - [`message`] — Bazel Remote Execution v2-shaped messages
10//! ([`Action`], [`Command`], [`Directory`], [`ActionResult`], …).
11//! - [`merkle::build_input_tree`] / [`merkle::materialize_input_tree`] —
12//! Merkle-tree construction and materialization.
13//!
14//! The types in this crate deliberately mirror
15//! `build.bazel.remote.execution.v2.*` so that a future remote backend can
16//! use the official `bazel-remote-apis` generated types without reshaping
17//! any cuenv data structures.
18
19pub mod action_cache;
20pub mod cas;
21pub mod digest;
22pub mod error;
23pub mod merkle;
24pub mod message;
25
26pub use action_cache::{ActionCache, LocalActionCache};
27pub use cas::{Cas, LocalCas};
28pub use digest::{Digest, canonical_bytes, digest_of};
29pub use error::{Error, Result};
30pub use merkle::{build_input_tree, directory_digest, materialize_input_tree};
31pub use message::{
32 Action, ActionResult, Command, Directory, DirectoryNode, ExecutionMetadata, FileNode,
33 OutputDirectory, OutputFile, Platform, SymlinkNode,
34};