C++ for the Internet Computer

icpp-pro is open source, available on GitHub

Installation Guide


In the wild

Check out these real world on-chain AI examples build with icpp-pro:


Download Statistics

Capabilities

Capability icpp-pro
Compile C++ Smart Contracts to WebAssembly for the IC
Seamless compilation with wasi-sdk and deployment of wasm to IC Canisters
✔
Interactive Debugging of C++ Smart Contract with VS Code
Debug your Smart Contract using a fast, native debug compile with Clang++
✔
Unit test framework
Test your Smart Contract using a fast, native debug compile
✔
Smoke test framework based on pytest
Test your Smart Contract after deployment to local or main IC network
✔
Static libraries
Structure your project using one or more libraries
✔
Hooks into build process
icpp-pro will call your python function at the appropriate time
Allows you to customize/optimize/merge the wasm
✔
Modern C++
By default, using C++20, but C++17 also supported
✔
Candid API
All candid types & forward compatibility are supported
✔
Orthogonal Persistence
for all data: primitives, sequence containers & associative containers
(int, float,...) , (std::vec, std::list,...) & (std::map, std::unordered_map)
✔
Stable Memory
Files written during an update call are stored instable memory and persist across canister upgrades
✔
std::cout
All debug output is printed to local canister console
✔
File io
All file io is supported (open/write/read/close/delete/etc.)
✔
Canister Initialization
canister_init
✔
Cross-platform development, deployment & testing experience
Linux, Mac; arm64, x86_64
✔
Selective compilation
Speed up your builds by re-compiling only your own canister files
✔

C++ Community

Please join the C++ Community on OpenChat.