TL;DR

MoonBit の Web フレームワーク。JavaScript バックエンドとネイティブバックエンドの両方をサポートしている。

仕組み

MoonBit のプロジェクトを作り、依存に oboard/mocket を追加して使う。

moon new mocket_example
moon add oboard/mocket

@mocket.new() でアプリケーションを作り、ルートを登録してから serve で起動する。機能ごとの詳細は次のページにまとめている。

例

cmd/main/main.mbt に次のように書く。

fn main {
  let app = @mocket.new()
  app.get("/", _ => "Hello, Mocket!")
  app.group("/api", group => group.get("/status", _ => (
    { "status": "ok" } : Json)))
  app.serve(port=4000)
}

--target でバックエンドを選んで実行する。どちらのバックエンドでもページが表示された。

# JavaScript バックエンド
moon run cmd/main --target js
# ネイティブバックエンド
moon run cmd/main --target native

自分の理解

名前から、Rust の Web フレームワークである Rocket にインスパイアされているのかもしれない。

出典