Canister backup and restore [Community Consideration]

Hi, canister backups and snapshots are a valuable feature for writing canisters.

The canister_tools rust library can create snapshots of the global-variables in the heap for backup and restore purposes. Controllers can create snapshots, download in chunks, and even upload a snapshot in chunks and then load the uploaded snapshot back onto the global variable. At the same time making a simple upgrade strategy for global-heap-variables. The user can choose the serialization format for the snapshots, default is bincode. The library works with the virtual memories feature of the ic-stable-structures library so stable-structures can be used alongside global-variables in the heap. The library also creates public controller methods for reading and writing the virtual stable-memories.

5 Likes