Rust Canister Development Kit
Rust CDK provides tools for building Canisters on Internet Computer (IC).
You may be looking for:
- Documentation Site of the Internet Computer
- Tutorials of Rust CDK
- Examples
dfx
for managing IC projects
If you are looking for a crate to communicate with existing canisters on IC, you may want to check agent-rs.
Introduction
A canister
is a WebAssembly (wasm) module that can run on the Internet Computer.
To be a canister
, a wasm module should communicate with the execution environment using Canister interfaces (System API).
This repo provides libraries and tools to facilitate developing canisters in Rust.
ic0
: Internet Computer System API binding.ic-cdk
: Internet Computer Canister Development Kitic-cdk-bindgen
: Generate Rust bindings from Candid to make inter-canister calls.ic-cdk-macros
: Annotate functions with attribute macros to make them exposed public interfaces.ic-cdk-timers
: The library implements multiple and periodic timers.candid-extractor
: A CLI tool to extract candid definition from canister WASM.ic-certified-map
: An implementation of map which support certified queries.ic-ledger-types
: Type definitions to communicate with the ICP ledger canister.
Rust CDK in Action
In Cargo.toml:
[lib]
crate-type = ["cdylib"]
[dependencies]
candid = "0.9" # this version is required if you want to define Candid data types
ic-cdk = "0.11"
Then in your rust source code:
#[ic_cdk::query]
fn print() {
ic_cdk::print("Hello World from DFINITY!");
}
Check tutorial for a detailed guidance.