Skip to main content

Crate scrollcase_consumer

Crate scrollcase_consumer 

Source
Expand description

Verify, prepare, and run caller-supplied local Scrollcase boxes.

A box is a portable, locked, self-contained Python environment built for one operating system and accelerator, signed so whoever receives it can prove what they received. This crate is the consuming half of that story, and only that half: it verifies a signed release a caller already holds, extracts or re-identifies the box on local disk, and runs the entry point the release declares.

It is deliberately not a distribution system. It selects no channel, downloads nothing, updates nothing, and knows about no registry. Every path, trust key, archive and destination comes from the caller, because those lifecycle choices belong to the application, not to the format.

§Verification precedes execution

No interpreter, script, module or import from a box runs before the signature, the payload shape, the archive size and hash, the entry safety and the manifest agreement have all passed. The type system carries that rule: the receipt proving those checks succeeded has private fields and no public constructor, so it can only be obtained from a function that performed them.

§Relationship to the other implementations

The Node consumer at scrollcase/consumer and the Python scrollcase_consumer package implement the same semantics. All three prove themselves against shared language-neutral fixtures rather than maintaining separate definitions of the format.

Re-exports§

pub use error::Error;
pub use error::Result;

Modules§

archive
Defensive archive reading.
contract
The box format, mirrored.
environment
Environment resolution shared by every place a box interpreter is run.
error
The single error path.
execution
Static execution prerequisites.
filesystem
Reading a payload tree, and refusing one that is not a payload tree.
path
The path rule every payload-supplied name is screened by.
prepare
Verification and durable preparation of a caller-supplied local box.
release
The signed release manifest, and the box.json that must agree with it.
run
Shell-free execution of a box this process has already verified.
trust
Trusted keys, and the signature check every consumer path begins with.
verify
The half of the trust chain that needs no archive.