Skip to main content

Module local

Module local 

Source
Expand description

The local subprocess executor: the second implementation of the D18 seam, and the one that ships with it.

It runs each job as an ordinary child process on this machine. No virtual machine, no shared cache, no isolation beyond what the OS gives a subprocess — which makes it unsuitable for untrusted code and exactly right as the backend that keeps the seam honest. A conformance suite with one implementation has never been tested against disagreement.

§Examples

use choir_queue::executor::{CiExecutor, Job, Verdict};
use choir_queue::local::LocalRunner;
use choir_hash::ContentHash;

let mut ci = LocalRunner::new();
let job = Job::new(ContentHash::blake3(b"tree"), vec!["true".into()]);
assert_eq!(ci.run(&[job]).unwrap(), vec![Verdict::Passed]);

Structs§

LocalRunner
Runs jobs as child processes of this one.