Skip to main content

secure_exec_sidecar/
lib.rs

1#![forbid(unsafe_code)]
2
3//! Native sidecar scaffold that composes the kernel and execution crates.
4
5pub(crate) mod bootstrap;
6pub(crate) mod bridge;
7pub(crate) mod execution;
8pub mod extension;
9pub(crate) mod filesystem;
10pub mod generated_protocol;
11#[allow(dead_code)]
12pub(crate) mod json_rpc;
13pub mod limits;
14#[cfg(target_os = "macos")]
15pub(crate) mod macos_fs;
16pub(crate) mod metadata;
17pub(crate) mod plugins;
18pub mod protocol;
19pub mod service;
20pub(crate) mod state;
21pub mod stdio;
22pub(crate) mod tools;
23pub(crate) mod vm;
24pub mod wire;
25
26pub use extension::{
27    Extension, ExtensionContext, ExtensionFuture, ExtensionInterruptRequest,
28    ExtensionInterruptResponse, ExtensionResponse,
29};
30pub use service::{DispatchResult, NativeSidecar, NativeSidecarConfig, SidecarError};
31pub use state::EventSinkTransport;
32pub use state::SidecarRequestTransport;
33
34use wire::{DEFAULT_MAX_FRAME_BYTES, PROTOCOL_NAME, PROTOCOL_VERSION};
35
36pub trait NativeSidecarBridge: secure_exec_bridge::HostBridge {}
37
38impl<T> NativeSidecarBridge for T where T: secure_exec_bridge::HostBridge {}
39
40#[derive(Debug, Clone, Copy, PartialEq, Eq)]
41pub struct SidecarScaffold {
42    pub package_name: &'static str,
43    pub binary_name: &'static str,
44    pub kernel_package: &'static str,
45    pub execution_package: &'static str,
46    pub protocol_name: &'static str,
47    pub protocol_version: u16,
48    pub max_frame_bytes: usize,
49}
50
51pub fn scaffold() -> SidecarScaffold {
52    let kernel = secure_exec_kernel::scaffold();
53    let execution = secure_exec_execution::scaffold();
54
55    SidecarScaffold {
56        package_name: env!("CARGO_PKG_NAME"),
57        binary_name: env!("CARGO_PKG_NAME"),
58        kernel_package: kernel.package_name,
59        execution_package: execution.package_name,
60        protocol_name: PROTOCOL_NAME,
61        protocol_version: PROTOCOL_VERSION,
62        max_frame_bytes: DEFAULT_MAX_FRAME_BYTES,
63    }
64}