Skip to main content

ic_platform/
lib.rs

1//! Controlled dependencies for external Candid protocols and IC runtime integration.
2//!
3//! [`Principal`] is always available. `candid` selects bounded decoding;
4//! `executor` selects the shared CDK executor without a Candid dependency.
5//! `candid-parser` selects native host parsing and binding generation only.
6//! `agent` selects native IC transport and identities, with consumer-owned policy.
7//! `ic0` selects qualified raw system calls without Candid or an executor.
8//! `management-canister-types` selects external management HTTP outcall DTOs.
9//! Consumers retain protocol schemas, resource limits and lifecycle policy.
10
11pub use ic_principal::{Principal, PrincipalError};
12
13#[cfg(all(feature = "agent", not(target_family = "wasm")))]
14pub mod agent;
15
16#[cfg(feature = "candid")]
17pub mod candid;
18#[cfg(all(feature = "candid-parser", not(target_family = "wasm")))]
19pub mod candid_parser;
20#[cfg(feature = "certification")]
21pub mod certification;
22#[cfg(feature = "executor")]
23pub mod executor;
24#[cfg(feature = "ic0")]
25pub mod ic0;
26#[cfg(feature = "management-canister-types")]
27pub mod management_canister_types;