C++ Canister Development Kit
icpp-pro is a CDK to develop C++ smart contracts for the Internet Computer.
"...needed to have more flexibility with using c++ code as backend server. With the introduction of icpp within icp, it is now possible to create something that crosses the borders of what is possible."Ktimam Imam (ICSoccerWorld)
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 |
✔ |
Static libraries Structure your project using one or more libraries |
✔ |
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) |
✔ |
Canister Initialization canister_init |
✔ |
Cross-platform development, deployment & testing experience Windows, Linux, Mac |
✔ |
Fast compilation using concurrency Multi-threaded compilation on Windows, Linux & Mac |
✔ |
Selective compilation Speed up your builds by re-compiling only your own canister files |
✔ |
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 |
✔ |