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/history/snapshot/status DTOs.
9//! `icrc-ledger-types` selects external ledger DTOs without storage integration.
10//! Consumers retain protocol schemas, resource limits and lifecycle policy.
11
12pub use ic_principal::{Principal, PrincipalError};
13
14#[cfg(all(feature = "agent", not(target_family = "wasm")))]
15pub mod agent;
16
17#[cfg(feature = "candid")]
18pub mod candid;
19#[cfg(all(feature = "candid-parser", not(target_family = "wasm")))]
20pub mod candid_parser;
21#[cfg(feature = "certification")]
22pub mod certification;
23#[cfg(feature = "executor")]
24pub mod executor;
25#[cfg(feature = "ic0")]
26pub mod ic0;
27#[cfg(feature = "icrc-ledger-types")]
28pub mod icrc_ledger_types;
29#[cfg(feature = "management-canister-types")]
30pub mod management_canister_types;