mod caps;
pub mod linux_provider;
mod portable;
mod protocol;
#[cfg(any(target_os = "macos", target_os = "windows"))]
mod worker_support;
pub use caps::BackendCaps;
pub use portable::{
BuildCellResult, BuildCellSpec, CacheSpec, CellPath, CleanupPolicy, CommandSpec, ExportSpec,
HostPath, ImportSpec, NetworkPolicy, ResourceLimits, WorkspaceSeed,
};
pub use protocol::{build_cell_request_path, read_build_cell_request, write_build_cell_request};
#[cfg(target_os = "linux")]
pub mod linux;
#[cfg(target_os = "linux")]
pub use linux::{
backend_caps, build_cell_reexec_command, build_cell_reexec_command_with_backend,
build_unshare_reexec_command, build_unshare_reexec_command_with_backend, finalize_build_cell,
helper_binary_path, prepare_oci_rootfs, prepare_runtime_emulator, probe_rootless_userns,
run_build_cell, run_isolated_container_command, BindMount, ContainerRunCommand,
LinuxNamespaceBackend, LinuxNamespaceProbe, RUN_HELPER_DIR,
};
#[cfg(target_os = "macos")]
pub mod macos;
#[cfg(target_os = "macos")]
pub use macos::backend_caps;
#[cfg(target_os = "windows")]
pub mod windows;
#[cfg(target_os = "windows")]
pub use windows::backend_caps;
#[cfg(not(any(target_os = "linux", target_os = "macos", target_os = "windows")))]
compile_error!("metalor runtime backends currently support only linux, macos, and windows");