1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
//! # solti-exec - task execution backends.
//!
//! Provides concrete [`Runner`](solti_runner::Runner) implementations that turn [`TaskSpec`](solti_model::TaskSpec)
//! into running OS processes (and, in the future, WASM / container backends).
//!
//! ## Feature flags
//!
//! | Flag | What it enables |
//! |---------------|-------------------------------------------------------------|
//! | `subprocess` | [`subprocess`] module - OS process runner with sandboxing |
//!
//! ## Quick start
//!
//! ```text
//! use solti_exec::subprocess::*;
//!
//! let mut router = RunnerRouter::new();
//! register_subprocess_runner(&mut router, "default")?;
//!
//! // with sandboxing
//! let backend = SubprocessBackendConfig::new()
//! .with_rlimits(RlimitConfig { .. })
//! .with_cgroups(CgroupLimits { .. })
//! .with_security(SecurityConfig { .. });
//! register_subprocess_runner_with_backend(&mut router, "secure", backend)?;
//! ```
//!
//! ## Also
//!
//! - [`solti_runner::Runner`] trait implemented by backends in this crate.
//! - [`solti_model::TaskKind`] determines which backend handles the task.
//! - [`solti_runner::RunnerRouter`] routes tasks to registered runners.
pub use ExecError;
pub use ;
pub