Skip to main content

harness_lock_core/
lib.rs

1//! Core library for **harness-lock** (`hlock`).
2//!
3//! Implements the manifest, the lockfile, the content-addressed store, task
4//! packs, the deterministic reference provider/harness, the search layer, and
5//! the resolver — the same v0.1 surface as the (now reference) Python
6//! implementation, in Rust. The [`flyte`] backend and the PyO3 Python bindings
7//! live in sibling crates.
8//!
9//! The Python-facing API mirrors [`resolve`](resolver::Resolver::resolve) and the lockfile
10//! model so the user surface stays stable across the language boundary.
11
12pub mod adapters;
13pub mod agent;
14pub mod capture;
15pub mod contract;
16pub mod launch;
17pub mod localize;
18pub mod error;
19pub mod hash;
20pub mod lockfile;
21pub mod manifest;
22pub mod meta;
23pub mod ops;
24pub mod profiles;
25pub mod providers;
26pub mod resolver;
27pub mod search;
28pub mod store;
29pub mod sync;
30pub mod tasks;
31pub mod worker;
32
33#[cfg(feature = "flyte")]
34pub mod flyte;
35
36pub use adapters::HarnessAdapter;
37pub use error::{Error, Result};
38pub use hash::{content_hash, sha256_hex, sha256_text};
39pub use lockfile::Lockfile;
40pub use manifest::{find_manifest, Manifest};
41pub use profiles::Registry;
42pub use resolver::Resolver;
43pub use store::Store;
44pub use worker::Backend;
45
46/// Schema version of the `harness.lock` lockfile.
47pub const LOCK_VERSION: i64 = 1;
48/// Default output filename for the lockfile.
49pub const LOCKFILE_PATH: &str = "harness.lock";
50/// Default manifest filename.
51pub const MANIFEST_PATH: &str = "harness.toml";