generate-did

Crates.iogenerate-did
lib.rsgenerate-did
version0.1.1
created_at2025-05-29 11:16:47.550324+00
updated_at2025-07-10 13:17:52.419682+00
descriptionA tool to generate Candid (.did) files for Internet Computer Rust canisters
homepagehttps://github.com/Stephen-Kimoi/generate-did
repositoryhttps://github.com/Stephen-Kimoi/generate-did
max_upload_size
id1693692
size22,396
steve kimoi (Stephen-Kimoi)

documentation

https://docs.rs/generate-did

README

generate-did

Crates.io Docs.rs License: MIT Test Examples

A command-line tool to generate Candid (.did) files for Internet Computer Rust canisters.

Features

  • Build your Rust canister and extract its Candid interface automatically.
  • Simple, robust CLI.

Installation

Install from crates.io:

cargo install generate-did

Usage

From your project root or from inside the canister directory, run:

generate-did <canister_name>
  • Replace <canister_name> with the directory name of your canister (must contain a Cargo.toml).
  • The .did file will always be placed in the canister directory.

Requirements

  • candid-extractor must be installed and in your PATH:
    cargo install candid-extractor
    
  • Ensure in your Rust canister code, you've called the export_candid macro at the end of your lib.rs file:
use ic_cdk::query;
use ic_cdk::update;

#[query]
fn hello(name: String) -> String {
    format!("Hello, {}!", name)
}

#[update]
fn world(name: String) -> String {
    format!("World, {}!", name)
}

// Enable Candid export
ic_cdk::export_candid!();
  • The canister must be a Rust project with a valid Cargo.toml and buildable to WASM.

License

This project is licensed under the MIT License.

Commit count: 8

cargo fmt