Code with types
High uses indentation to group code. You declare parameter and return types; variable types are inferred from their values.
Language basicsA programming language in development
Nagi is a language in development for writing backends in readable, typed High code with Python-style syntax. Use its standard APIs for HTTP, JSON, and SQLite, and small Rust adapters for specialized work with existing Rust libraries.
Nagi 0.2.0 is available. See its development status
def double(number: i64) -> i64:
return number * 2
def main():
answer = double(21)
print(answer)
Calling double(21) from main prints 42.
How code becomes a program
High uses indentation to group code. You declare parameter and return types; variable types are inferred from their values.
Language basicsDatabase operations return a Result: success or an error. You can define your own error types and handle each case.
Error handlingNagi generates Rust code and uses Rust/Cargo to build a native executable. Small handwritten Rust adapters connect existing crates to Nagi types and extern declarations.
Imports and Rust integrationRunnable examples
Build a CLI app that reads input, propagates typed failures, and checks boundary values.
Your first CLI appTry APIs using HTTP, JSON, and SQLite, or examples of actor message handling and Supervisor restarts.
Sample projectsGet the VS Code extension from its Marketplace listing or GitHub Releases. Nagi supports IntelliJ IDEA and PyCharm and is available from JetBrains Marketplace or GitHub Releases. Install it directly from Marketplace in a compatible IDE, or install the common Release ZIP for both IDEs manually. See editor installation
Where the name comes from
Even when the inside is working intensely,
the surface stays as calm as a quiet sea.
凪 (nagi) means a lull in the wind and a calm sea. The name expresses a wish for code that feels calm and clear to the person writing it.
Development status
The syntax and standard APIs may change. See purpose and current implementation.
Low uses braces with the same type and ownership rules as High, and supports function replacement. Pointer operations and unsafe blocks are not supported. About High and Low
Archives are available for Windows x64, Linux x86_64, macOS Apple Silicon, and macOS Intel. The nagic build/run commands require Rust/Cargo and your OS's build tools.