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§
- Local
Runner - Runs jobs as child processes of this one.