Expand description
The seam between the engine and any release bundle.
A release bundle is the payload of one release-kit release: every root
src/payload_roots.rs declares, at that release’s bytes. The engine
reads a bundle through ReleaseSource and through nothing else, so
the same planner describes the release compiled into this binary, a
release fetched from the crates venue, and a directory a test wrote.
The trait is two methods on purpose: the manifest, and a blob by
digest. Every method on the seam is a promise every source must keep.
payload_schema is the protocol version between an engine and a
bundle. An engine reads any bundle whose schema is at or below its own,
and refuses a newer one by naming the engine version to install: that
is the whole compatibility rule, and the only case where a newer
binary must be obtained.
Re-exports§
pub use crate_source::CrateReleaseSource;pub use dir::DirReleaseSource;pub use embedded::EmbeddedReleaseSource;
Modules§
- crate_
source - The crates venue behind the seam: another release’s bundle, fetched once, verified against the registry’s own checksum, and cached by that checksum.
- dir
- A release bundle laid out as a directory, behind the seam.
- embedded
- The bundle compiled into this binary, behind the seam.
Structs§
- Artifact
- One artifact of a bundle and the digest of its bytes.
- Release
Manifest - What identifies one release bundle: the
rk.payload/1document, asrk payload --jsonhas always emitted it, promoted to a type.
Constants§
- PAYLOAD_
SCHEMA - The version of the manifest’s shape and of the bundle protocol.
Traits§
- Release
Source - One release bundle, read by the engine.
Functions§
- aggregate
- The aggregate digest: SHA-256 over one
<path>\n<sha256>\nrecord per artifact, in list order. Any change to any artifact, any rename, and any reordering of the roots changes it. - check_
schema - The protocol rule, as one function both sides of the boundary test.
- read
- The bytes of one artifact by path, through the manifest.