ic_platform/lib.rs
1//! Controlled dependencies for IC runtime integration and required IC Candid interfaces.
2//!
3//! All owned application endpoints use IC Wire, including public endpoints.
4//! Candid adapts required management/system, NNS/SNS, ledger and other Candid
5//! interfaces; caller location does not select the codec. Existing Candid
6//! checkpoints remain a legacy persisted-data compatibility exception.
7//!
8//! [`Principal`] is always available. `candid` selects bounded decoding;
9//! `executor` selects the shared CDK executor without a Candid dependency.
10//! `candid-parser` selects native host parsing and binding generation only.
11//! `agent` selects native IC transport and identities, with consumer-owned policy.
12//! `pocket-ic` selects native simulator client identities; Testkit owns lifecycle policy.
13//! `secp256k1` selects native offline public-key derivation with upstream identities.
14//! `bls` selects BLS keys, signatures and verification with upstream allocation support.
15//! `canister-sig-creation` selects canister public-key formats and hashing.
16//! `signature-verification` selects upstream canister-signature verification.
17//! `cdk` selects owned explicit-codec entrypoints and a Candid-free runtime.
18//! `ic0` selects qualified raw system calls without Candid or an executor.
19//! `management-canister-types` selects external management HTTP/history/snapshot/status DTOs.
20//! `icrc-ledger-types` selects external ledger DTOs without storage integration.
21//! Consumers retain protocol schemas, resource limits and lifecycle policy.
22
23pub use ic_principal::{Principal, PrincipalError};
24
25#[cfg(all(feature = "agent", not(target_family = "wasm")))]
26pub mod agent;
27
28#[cfg(feature = "bls")]
29pub mod bls;
30#[cfg(feature = "candid")]
31pub mod candid;
32#[cfg(all(feature = "candid-parser", not(target_family = "wasm")))]
33pub mod candid_parser;
34#[cfg(feature = "canister-sig-creation")]
35pub mod canister_sig_creation;
36#[cfg(feature = "cdk")]
37pub mod cdk;
38#[cfg(feature = "certification")]
39pub mod certification;
40#[cfg(feature = "ecdsa")]
41pub mod ecdsa;
42#[cfg(feature = "ed25519")]
43pub mod ed25519;
44#[cfg(feature = "executor")]
45pub mod executor;
46#[cfg(feature = "ic0")]
47pub mod ic0;
48#[cfg(feature = "icrc-ledger-types")]
49pub mod icrc_ledger_types;
50#[cfg(feature = "management-canister-types")]
51pub mod management_canister_types;
52#[cfg(all(feature = "secp256k1", not(target_family = "wasm")))]
53pub mod secp256k1;
54#[cfg(feature = "signature-verification")]
55pub mod signature_verification;
56
57#[cfg(all(feature = "pocket-ic", not(target_family = "wasm")))]
58pub mod pocket_ic;