#dfinity #internet-computer-icp #management #canister

canic-cdk

Canic — a canister orchestration and management toolkit for the Internet Computer

99 releases (5 breaking)

Uses new Rust 2024

new 0.9.21 Feb 11, 2026
0.9.14 Jan 31, 2026
0.7.0 Dec 30, 2025

#244 in WebAssembly

Download history 113/week @ 2025-12-03 106/week @ 2025-12-10 85/week @ 2025-12-17 42/week @ 2025-12-24 22/week @ 2025-12-31 24/week @ 2026-01-07 26/week @ 2026-01-14 19/week @ 2026-01-21 153/week @ 2026-01-28 251/week @ 2026-02-04

450 downloads per month
Used in 12 crates (7 directly)

MIT license

49KB
1K SLoC

canic-cdk

Canic's lightweight wrapper around ic-cdk types and helpers used across the stack.

This crate exists to give Canic (and downstream canisters) a stable import surface:

  • canic::cdk::api and canic::cdk::mgmt re-export ic_cdk APIs.
  • canic::cdk::timers re-exports ic_cdk_timers.
  • canic::cdk::candid re-exports candid.
  • canic::cdk::structures re-exports ic-stable-structures plus a small BTreeMap wrapper.
  • canic::cdk::types provides common IC types (Principal, Nat, Int, Account, …).
  • canic::cdk::utils hosts small WASM-safe helpers like time::now_* and wasm::get_wasm_hash.

Most users should access this crate via canic::cdk (from the facade crate).

Example

use canic::cdk::{api, types::Principal};

#[canic::cdk::update]
fn whoami() -> Principal {
    api::caller()
}

For installation and workspace usage, see ../../README.md.

Dependencies

~7–19MB
~228K SLoC