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