greentic_component/
lib.rs

1#![forbid(unsafe_code)]
2
3#[cfg(feature = "abi")]
4pub mod abi;
5pub mod capabilities;
6#[cfg(feature = "cli")]
7pub mod config;
8#[cfg(feature = "describe")]
9pub mod describe;
10pub mod error;
11pub mod lifecycle;
12pub mod limits;
13#[cfg(feature = "loader")]
14pub mod loader;
15pub mod manifest;
16pub mod path_safety;
17#[cfg(feature = "prepare")]
18pub mod prepare;
19pub mod provenance;
20pub mod schema;
21pub mod security;
22pub mod signing;
23pub mod telemetry;
24
25pub mod store;
26
27#[cfg(feature = "cli")]
28pub mod cli;
29#[cfg(feature = "cli")]
30pub mod cmd;
31#[cfg(feature = "cli")]
32pub mod scaffold;
33#[cfg(feature = "cli")]
34pub mod test_harness;
35#[cfg(any(
36    feature = "abi",
37    feature = "describe",
38    feature = "prepare",
39    feature = "cli"
40))]
41pub mod wasm;
42
43#[cfg(feature = "abi")]
44pub use abi::{AbiError, check_world, has_lifecycle};
45pub use capabilities::{Capabilities, CapabilityError};
46#[cfg(feature = "describe")]
47pub use describe::{
48    DescribeError, DescribePayload, DescribeVersion, from_embedded, from_exported_func,
49    from_wit_world, load as load_describe,
50};
51pub use error::ComponentError;
52pub use lifecycle::Lifecycle;
53pub use limits::{LimitError, LimitOverrides, Limits, defaults_dev, merge};
54#[cfg(feature = "loader")]
55pub use loader::{ComponentHandle, LoadError, discover};
56pub use manifest::{
57    Artifacts, ComponentManifest, DescribeExport, DescribeKind, Hashes, ManifestError, ManifestId,
58    WasmHash, World, parse_manifest, schema as manifest_schema, validate_manifest,
59};
60#[cfg(feature = "prepare")]
61pub use prepare::{
62    PackEntry, PreparedComponent, RunnerConfig, clear_cache_for, prepare_component,
63    prepare_component_with_manifest,
64};
65pub use provenance::{Provenance, ProvenanceError};
66pub use schema::{
67    JsonPath, collect_capability_hints, collect_default_annotations, collect_redactions,
68};
69pub type RedactionPath = JsonPath;
70pub use security::{Profile, enforce_capabilities};
71pub use signing::{
72    DevPolicy, SignatureRef, SigningError, StrictPolicy, compute_wasm_hash, verify_manifest_hash,
73    verify_wasm_hash,
74};
75pub use store::{
76    CompatError, CompatPolicy, ComponentBytes, ComponentId, ComponentLocator, ComponentStore,
77    MetaInfo, SourceId,
78};
79pub use telemetry::{TelemetrySpec, span_name};