greentic_component/
lib.rs1#![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;
10#[cfg(feature = "cli")]
11pub mod embedded_compare;
12#[cfg(any(feature = "cli", feature = "abi", feature = "prepare"))]
13pub mod embedded_descriptor;
14pub mod error;
15pub mod lifecycle;
16pub mod limits;
17#[cfg(feature = "loader")]
18pub mod loader;
19pub mod manifest;
20pub mod path_safety;
21#[cfg(feature = "prepare")]
22pub mod prepare;
23pub mod provenance;
24pub mod schema;
25pub mod schema_quality;
26pub mod security;
27pub mod signing;
28pub mod telemetry;
29
30pub mod store;
31
32#[cfg(feature = "cli")]
33pub mod cli;
34#[cfg(feature = "cli")]
35pub mod cmd;
36#[cfg(feature = "cli")]
37pub mod scaffold;
38#[cfg(feature = "cli")]
39pub mod test_harness;
40#[cfg(any(
41 feature = "abi",
42 feature = "describe",
43 feature = "prepare",
44 feature = "cli"
45))]
46pub mod wasm;
47#[cfg(feature = "cli")]
48pub mod wizard;
49
50#[cfg(feature = "abi")]
51pub use abi::{AbiError, check_world, has_lifecycle};
52pub use capabilities::{Capabilities, CapabilityError};
53#[cfg(feature = "describe")]
54pub use describe::{
55 DescribeError, DescribePayload, DescribeVersion, from_embedded, from_exported_func,
56 from_wit_world, load as load_describe,
57};
58#[cfg(feature = "cli")]
59pub use embedded_compare::{
60 ComparisonStatus, DescribeProjection, EmbeddedManifestComparisonReport, FieldComparison,
61 build_describe_projection, compare_embedded_with_describe, compare_embedded_with_manifest,
62};
63#[cfg(any(feature = "cli", feature = "abi", feature = "prepare"))]
64pub use embedded_descriptor::{
65 EMBEDDED_COMPONENT_MANIFEST_SECTION_V1, EmbeddedComponentDescriptorEnvelopeV1,
66 EmbeddedComponentManifestV1, VerifiedEmbeddedDescriptorV1,
67 append_embedded_component_manifest_section_v1, build_embedded_manifest_projection,
68 decode_embedded_component_descriptor_v1, embed_and_verify_wasm,
69 encode_embedded_component_descriptor_v1,
70 read_and_verify_embedded_component_manifest_section_v1,
71 read_embedded_component_manifest_section_v1, verify_embedded_component_descriptor_v1,
72 verify_embedded_projection_matches_canonical_manifest,
73};
74pub use error::ComponentError;
75pub use lifecycle::Lifecycle;
76pub use limits::{LimitError, LimitOverrides, Limits, defaults_dev, merge};
77#[cfg(feature = "loader")]
78pub use loader::{ComponentHandle, LoadError, discover};
79pub use manifest::{
80 Artifacts, ComponentManifest, DescribeExport, DescribeKind, Hashes, ManifestError, ManifestId,
81 WasmHash, World, parse_manifest, schema as manifest_schema, validate_manifest,
82};
83#[cfg(feature = "prepare")]
84pub use prepare::{
85 PackEntry, PreparedComponent, RunnerConfig, clear_cache_for, prepare_component,
86 prepare_component_with_manifest,
87};
88pub use provenance::{Provenance, ProvenanceError};
89pub use schema::{
90 JsonPath, collect_capability_hints, collect_default_annotations, collect_redactions,
91};
92pub use schema_quality::{SchemaQualityMode, SchemaQualityWarning, validate_operation_schemas};
93pub type RedactionPath = JsonPath;
94pub use security::{Profile, enforce_capabilities};
95pub use signing::{
96 DevPolicy, SignatureRef, SigningError, StrictPolicy, compute_wasm_hash, verify_manifest_hash,
97 verify_wasm_hash,
98};
99pub use store::{
100 CompatError, CompatPolicy, ComponentBytes, ComponentId, ComponentLocator, ComponentStore,
101 MetaInfo, SourceId,
102};
103pub use telemetry::{TelemetrySpec, span_name};