Dear ICP community members,
For a while, the Wasm64 ICP canister feature has been running in beta mode, available only for Motoko canisters that enabled the Enhanced Orthogonal Persistence feature. We are happy to see that everything has been running smoothly with respect to both Wasm64 and the EOP features.
We are now excited to announce that since the release of the new ICP Rust CDK, Wasm64 is now available for Rust canisters. More details can be found here and in this example. After following the rust toolchain related instructions, compiling your canister as Wasm64 is as easy as changing the target to wasm64-unknown-unknown.
NB: an existing Wasm32 canister would need to be re-built in Wasm64 mode and then re-deployed. One cannot simply change a running canister and this cannot be automatically achieved on the ICP replica side for running canisters. Since this is a new feature we advise care and careful testing before replacing production canisters.
The added benefit for the Wasm64-enabled canisters is that the heap size is now increased to 6 GiB (instead of the max 4 GiB given by the 32-bit address space). Getting to larger heap sizes is dependent on technical challenges related to deterministically tracking the amount of accessed memory pages during canister runtime. The execution team is investigating possible solutions to this problem and will come back to you with a timeline on when heaps can be increased beyond 6 GiB.