2025/11/30

Moonbitを試してみた

WasmMoonBit

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エイリアスで読み込むことができます。

最後に

株式会社Robbitsでは一緒に働く仲間を募集しています!
ご興味のある方は是非一度ホームページをご覧ください!

ホームページを見てみる