Skip to main content

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