TL;DR Wasmコンポーネントのインターフェースを定義する言語です パッケージという形で名前空間を提供します インポートとエキスポートの定義のことをワールド(world)と呼びます 注意:仕様策定中の技術を扱っています。仕様作成の進行によっては、内容が正しくない場合があります。 背景 Wasmモジュールにはi32、i64, f32, f64の4種類のデータ型しか存在しません。また文字列やユーザー定義型のような構造を持つデーターの表現にも標準が存在せず、データをどのようにメモリ上に配置方法はプログラミング言語の処理系、またはプログラマーが決めるものとされていました。 例えば、次のようなデータ構造と、それに対する操作があったとします。 pub struct Point { x: i32, y: u8, z: u16, } #[no_mangle] pub fn hash(point: &P
![Rustで学ぶWebAssembly Interface Type入門](https://cdn-ak-scissors.b.st-hatena.com/image/square/2ca8da2d1ba3e84ed2195ee4ee344522d7251f05/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fzenn%2Fimage%2Fupload%2Fs--PFFRb1TN--%2Fc_fit%252Cg_north_west%252Cl_text%3Anotosansjp-medium.otf_55%3ARust%2525E3%252581%2525A7%2525E5%2525AD%2525A6%2525E3%252581%2525B6WebAssembly%252520Interface%252520Type%2525E5%252585%2525A5%2525E9%252596%252580%252Cw_1010%252Cx_90%252Cy_100%2Fg_south_west%252Cl_text%3Anotosansjp-medium.otf_37%3Achikoski%252Cx_203%252Cy_121%2Fg_south_west%252Ch_90%252Cl_fetch%3AaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzgwYzk3YTk1NjEuanBlZw%3D%3D%252Cr_max%252Cw_90%252Cx_87%252Cy_95%2Fv1627283836%2Fdefault%2Fog-base-w1200-v2.png)