🚨 Breaking news! 🚨

icpp-art Banner

icpp-art is launching today on bioniq 🎨✨

A one-of-a-kind collection celebrating #ICP art 🖼️ while supporting the hiring of a technical writer for an epic C++ bootcamp. 🚀

Learn more at icpp-art.com


C++ for the Internet Computer

icpp-pro is open source, available on GitHub

Installation Guide


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
Windows, Linux, Mac
Selective compilation
Speed up your builds by re-compiling only your own canister files

C++ Community

Please join the C++ Community on OpenChat.