Rust プログラムの最適化
Rust を WebAssembly にコンパイルするとファイルサイズが大幅に増加しがちです。DFINITY Rust CDK には ic-cdk-optimizer
というヘルパーライブラリが含まれており、Rust ベースの Canister スマートコントラクトを Internet Computer メインネットにデプロイする前にサイズを小さくするのに使用できます。
はじめる前に
プログラムの最適化を始める前に、以下を確認してください:
-
インターネットに接続しており、ローカルの macOS または Linux コンピュータでターミナルにアクセスできること。
-
Rust のインストール方法 にあるように、Rust プログラミング言語と Cargo が OS にダウンロードされ、インストールされていること。
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
Rust のバージョンは 1.46.0 より新しい必要があります。
-
ダウンロードとインストールの説明に従って、DFINITY Canister Software Development Kit (SDK) パッケージのダウンロードとインストールが済んでいること。
-
cmake
のインストールが済んでいること。例えば、macOS では Homebrew を使って以下のコマンドを実行します:brew install cmake
Homebrew をインストールする方法については、Homebrew のドキュメントを参照してください。
-
Dapp を WebAssembly モジュール(WASM)にコンパイルし、ローカル Canister 実行環境 上にデプロイした経験があること。
最適化ツールのインストールと実行
Rust の Dapp をコンパイルしてできた Canister を、以下の手順で最適化します:
-
自分がプロジェクトのルートディレクトリにいることを確認します。
-
過去に
ic-cdk-optimizer
クレートをインストールしていなければ、以下のコマンドでインストールします:cargo install ic-cdk-optimizer
このパッケージは、Rust コードを最適化して WebAssembly の出力サイズを小さくし、Dapp が Internet Computer メインネットに Canister としてアップロードできるようにします。
-
以下のコマンドを実行して、
src
ディレクトリ内に release ディレクトリを作成します。mkdir -p src/rust-canister/target/wasm32-unknown-unknown/release/
-
以下のコマンドを実行して、
target
ディレクトリ内のコードを最適化します。ic-cdk-optimizer target/wasm32-unknown-unknown/release/_rust_canister_.wasm -o target/wasm32-unknown-unknown/release/_rust_canister_-opt.wasm