C++ for the Internet Computer
icpp-pro is open source, available on GitHub
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 |
✔ |