2025/11/30
Moonbitを試してみた
MoonBitはWebAssembly(Wasm)向けに設計された新しいプログラミング言語です。
RustやGoなどの既存のWasm対応言語と比較して、よりWasmに最適化されています。
ちょうどWasmに興味があったので入門してみます。
①環境構築
公式のイントロダクションを参考に環境構築をすすめていきます。
VSCodeの拡張機能
VSCodeのマーケットプレイスから拡張機能「MoonBit Language plugin」をインストールします。
Windsurfでインストールしようとしたところ拡張機能の検索時にエラーが出てインストールできなかったため、今回は割愛します。VSCodeで検索したら拡張機能があったのでVSCodeを使用している方はインストールしておいた方がいいかと思います。
MoonBit CLI Toolsのインストール
Windowsの場合はPowerShellで以下のコマンドを実行してください。
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser; irm https://cli.moonbitlang.com/install/powershell.ps1 | iexインストールできたらPowerShellを再起動してmoonコマンドが使用できるか確認してください
moon help②プロジェクトを作成する
MoonBit用のサンプルプロジェクト用ディレクトリを作成して、その中で新規プロジェクトを作成します。
プロジェクト作成コマンドはmoon new <path>なので以下のように作成してみます。
moon new example作成できたら作成されたプログラムを起動してみましょう。
cd example
moon run cmd/main
> 89するとプログラムがビルドされて実行されます。
③簡単なプログラムを作成してみる
今回は引数のaとbの合計数を返すプログラムを作成してみます。
すでにexample.mbtがありますのでその中に追記していきます。
pub fn simple_sum(a : Int, b : Int) -> Int {
a + b
}cmd/main/main.mbtを書き換えてsimple_sumを実行してみましょう
fn main {
println(@lib.simple_sum(10, 11))
}実行してみます。
cd example
moon run cmd/main
> 21正しく実行されました!
なぜmainでsimple_sumが使えるのか
ここでcmd/main/moon.pkg.jsonを見てみましょう
{
"is-main": true,
"import": [
{
"path": "username/example",
"alias": "lib"
}
]
}ここのimport部分でexampleを読み込んでいるのが分かります。
main.mbt内で`@lib.simple_sum(10,11)`としているのはこのためです。
example.mbtに関数を追記していけばlibエイリアスで読み込むことができます。