Skip to main content

fidius_host/
lib.rs

1// Copyright 2026 Colliery, Inc.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15pub mod arch;
16pub mod arena;
17#[cfg(feature = "streaming")]
18pub mod client_stream;
19pub mod error;
20pub mod executor;
21pub mod handle;
22pub mod host;
23pub mod loader;
24pub mod package;
25pub mod signing;
26#[cfg(feature = "streaming")]
27pub mod stream;
28pub mod types;
29
30pub use error::{CallError, LoadError};
31pub use executor::PluginExecutor;
32pub use handle::PluginHandle;
33pub use host::PluginHost;
34pub use loader::{LoadedLibrary, LoadedPlugin};
35#[cfg(feature = "streaming")]
36pub use stream::{ChunkStream, StreamExecutor};
37pub use types::{LoadPolicy, PluginInfo, PluginRuntimeKind};
38// The WASM egress contract (FIDIUS-I-0027): an embedder names these to implement an
39// `EgressPolicy` for `PluginHost::builder().egress(..)`. Lifted to the crate root so
40// downstreams (incl. the `fidius` facade) can name them without the internal module path.
41#[cfg(feature = "wasm")]
42pub use executor::wasm::{EgressDenied, EgressPolicy};