開発中のプログラミング言語

読みやすく書く、
バックエンド。

Nagi(ナギ)は、Python風の構文と型付きのコードでバックエンドを書くための開発中の言語です。HTTP・JSON・SQLiteには標準APIを使い、必要に応じて小さなRustアダプターで既存ライブラリを組み合わせられます。

Nagi 0.2.0を公開しました。開発状況を見る

double.nagi数を2倍にする
def double(number: i64) -> i64:
    return number * 2

def main():
    answer = double(21)
    print(answer)
このコードの出力42

mainからdouble(21)を呼び出し、42を表示します。

コードと実行の仕組み

Highで書き、
Rustで実行ファイルに。

型のあるコード

Highは字下げで処理のまとまりを表す構文です。引数と戻り値に型を書き、変数の型は値から推論します。

基本の書き方

失敗をResultで扱う

DB操作などはResultで成功かエラーを返します。独自のエラー型を作り、処理を分けられます。

エラー処理

Rustの資産を使う

Rustコードを生成し、Rust/Cargoで実行ファイルを作ります。手書きのRustアダプターで、既存のcrateをNagiの型やextern宣言につなぎます。

importとRust連携

動くサンプル

最初の1ファイルから、
Web APIまで。

まずは1ファイルから

入力を受け取り、型付きの失敗を伝え、境界値を試すCLIアプリを作れます。

最初のCLIアプリ

VS Code拡張はMarketplaceまたはGitHub Releasesから入手できます。IntelliJ IDEA・PyCharm向けのNagiはJetBrains MarketplaceまたはGitHub Releasesから入手できます。Marketplaceから対応IDEへ直接インストールするか、両IDE共通のRelease ZIPを手動で導入できます。エディターの導入を見る

名前の由来

Nagiは、日本語の「凪」。

内部は激しく動いていても、
表面は凪のように穏やか。

書く人が触れるコードは穏やかで、見通しがよいものにしたい。その考えを名前に込めています。

開発状況

Nagi 0.2.0を公開しました。

文法と標準APIは今後変わることがあります。目的と現在の実装範囲を確認してください。

LowはHighと同じ型・所有権規則を使う波括弧構文で、関数差し替えにも使えます。ポインター操作やunsafeは未対応です。HighとLowについて

Windows x64、Linux x86_64、macOS Apple Silicon、macOS Intel用の配布物があります。nagic build/runにはRust/CargoとOSに応じたビルドツールが必要です。