Nagi Docs
初めて使うならインストールから最初のCLIアプリまで順に進めます。言語全体の道筋は言語機能索引、書式や関数を引くには文法・組み込み関数へ。
このDocsのcompiler基準版は2026-10-20に公開したNagi 0.2.0です。エディター拡張は別の版で管理します。エディターの案内を参照してください。公式サイトは通常mainから生成するため、その後の変更も含むことがあります。版ごとの差分はChangelogと0.2.0移行ガイドにあります。
目的と現在の範囲はNagiについてへ。以下のリファレンスは実装済みAPIの使い方と制限を示します。未実装の案は設計・開発予定に分けています。
このページの目次
初めて使う
- 準備と最初の実行でcompilerを用意し、Hello Worldを動かす。
- コードを書きながら学ぶで値・関数・配列・borrow・Resultを試す。
- 最初の小さなCLIアプリで、入力・型付きの失敗・境界値の手動確認を一続きで行う。
- HTTPでAPIを作り、SQLiteでデータを保存する。
VS Codeの使い方とJetBrains版の導入・Release ZIPの選び方も確認できます。
言語機能索引
まず用例を動かし、期待する結果を確認してから詳細ページで条件や制約を調べます。下の列は、各機能の利用目的、動く例と結果、誤りの直し方、使い分けを探す入口です。コード片は完全なプログラムとは限らないため、nagic runの手順がある節か、右端のサンプルを確認してください。
| 機能 | 使いどころ・動かす例と結果 | 制約・よくある誤りと直し方 | 使い分けと詳細 |
|---|---|---|---|
| 値、型注釈、代入・再代入 | 入門 #1:値と型で数値を更新し11を表示 |
型は最初の値から決まり、別の型へは再代入できない | 型、値と変数 |
| 関数、引数、return、関数値 | 入門 #2:関数を定義するで42を返す |
引数と戻り値の型を書き、実行文はmainから呼ぶ |
関数構文、関数型 |
| if、match、for、while、演算子 | 入門 #3:配列・class・分岐・繰り返しでOKと反復結果を表示 |
bool以外を条件にできない。break、continue、elifは未対応 |
分岐・loop・演算子、match |
| List、class、field、enum | 入門 #3:配列・class・分岐・繰り返しとclass例で合計・field値を表示 | Listは要素型を揃える。classは名前付きfieldで作り、method・継承・field再代入は未対応 | 型とenum、class |
nullable T? / Option[T] |
値がない場合の例でSomeとNoneを処理 |
両方をmatchする。unwrapやif value is not Noneの型絞り込みはない |
型、match構文 |
Result[T, E]、try、match、独自Error |
最初のCLIで入力失敗を伝え、入門 #5:失敗をResultで返すで回復例を読む | tryはErrを呼出元へ返す。局所回復にはmatchでOk/Err両方を書く |
失敗の種類と例、組み込み関数 |
| ownership、通常代入での明示move、copy | 入門 #4:viewで借りるで受渡し後の出力を確認 | 非Copyローカルの通常代入はmove(...)を使う。move後の元値は使えない |
代入・move・誤り、移行 |
borrowとview |
view例で文字列の一部を読み、copyした値と比較 | 元データより長く保存・返却できない。一時値のviewを保存しない | borrowと検査範囲、view |
shared、owned、Copy |
組み込み関数のshare/clone例 | sharedは任意の型を自動でthread-safeにはしない。owned[T]は未完成 |
型、メモリ |
| ファイル、import、module alias | 入門 #6:ファイルを分けるで2ファイルから関数を使う | 相対パスと登録済みstd moduleが対象。循環importや一般package探索は未対応 | module・Rust連携 |
async関数、await |
async例で待機後に表示 | await自体はtask/threadを作らない。Futureを変数へ保存する形式は未対応 |
async、CPU並行処理 |
scope、spawn、Task結果handle |
scope例で子の終了を待つ | 正常出口には子の終了規則がある。Taskはscopeの外へescapeできず、受取は一度 | Task結果・Err・故障、scope |
| Actor、Supervisor | 監視付きserviceで登録・呼出・停止を試す | 同一process内のAPI。再起動、業務Err、call失敗、shutdownの条件を確認する | actor、Supervisor、型API |
| HighとLow | High/Lowの実行例 | Lowも同じ型・ownership規則を使う。pointer/unsafe/C ABIを使う言語層ではない | HighとLow、Rust連携 |
| 組み込み関数 | 関数一覧から引数と戻り値を探す。主要例は各節と動くsampleにある | 引数の型、borrow/consume、同期/async、実行時条件が関数ごとに異なる | 全組み込み関数、HTTP、SQLite |
各ページは現在の実装と版の範囲に合わせ、用途、コード例と結果、条件・制約、誤った書き方と修正、近い機能との使い分けを載せるか、対応する節・sampleへ案内します。質問が複数の機能にまたがる場合はサンプルプロジェクト一覧も確認してください。
言語リファレンス
| 調べたいこと | ページ |
|---|---|
| 文法、演算子、関数の定義 | 文法の早見表 |
| 組み込み関数の引数・戻り値・制約 | 組み込み関数 |
| 型の種類と型注釈 | 型と推論 |
| 名前付きのデータ | class |
| 値を渡す、借りる、コピーする | 所有権、view |
| 失敗を返す・処理する | エラー処理 |
アプリを作る
| やりたいこと | ページ |
|---|---|
| DBなしのHTTP、ヘッダー、応答status | HTTP、APIリファレンス |
| JSONを読み書きする | JSON |
| 旧SQLite APIとSQLの事前検査 | SQLite、SQLの事前検査 |
| 型付きparameters・Pool・transactionを使う | SQLite PoolとTransaction |
| 複数ファイルに分ける、Rustを呼ぶ | importとRust連携 |
| 自作の共通コードやRustのcrateを使う | ライブラリとRustの資産 |
| 入口やビルド設定を保存する | nagi.toml |
| 自分のRust crateをアプリから使う | ローカルライブラリのサンプル |
| 非同期処理を待つ、複数の処理を始める | asyncとscope、並行処理 |
| 状態を持つ処理へメッセージを送り、再起動・停止を管理する | actor、Supervisor、APIリファレンス |
| 動くアプリを読む | サンプルプロジェクト一覧 |
| 型・モジュール・呼び出しを図にする | コードマップ |
動かせる入門例はexamples/tutorial/にあります。リファレンスにはコードの断片も載せています。
入門のコードは現行の書き方です。明示moveとTask結果handleはNagi 0.1.11で公開済みです。利用するcompilerが0.1.11以降であることをnagic --versionで確認してください。移行ガイドとTask結果handleに使い方をまとめています。actorのshared messageは将来の設計対象です。
SQLite Pool/Tx APIは0.2.0に含まれます。0.1.11には含まれません。
仕組みと開発状況
Nagiについて · 設計判断 · Low · メモリ · コンパイラ · 他の言語との連携 · 開発予定
本体のfileを探し、小さい変更を実行・検証してPRにする手順は初めての貢献へ。
std.actorはNagi 0.1.8から使える標準ライブラリです。サンプルで登録・呼び出し・停止を試せます。旧actor/Supervisorの組み込み関数とキューは検証用APIです。性能を調べる場合は、測定方法、測定結果、通信の負荷試験を確認してください。
Nagi 0.2.0と現在のソースが対象です。版ごとの変更は変更履歴、未対応の機能は各ページに記載しています。