Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
/ cdk-rs Public

Rust canister development kit for the Internet Computer.

License

Notifications You must be signed in to change notification settings

dfinity/cdk-rs

Repository files navigation

Rust Canister Development Kit

Rust CDK provides tools for building Canisters on Internet Computer (IC).

You may be looking for:

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 Kit.
  • ic-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.
  • ic-management-canister-types: Types for calling the IC management canister.
  • 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]
ic-cdk = "0.18"
candid = "0.10" # required if you want to define Candid data types

Then in Rust source code:

#[ic_cdk::query]
fn hello() -> String{
"world".to_string()
}

Check Rust quickstart for a detailed guidance.

About

Rust canister development kit for the Internet Computer.

Topics

Resources

Readme

License

Apache-2.0 license

Stars

Watchers

Forks

Contributors

Languages