Static, lightweight & embeddable programming language.
Engineered to extend host applications like Lua, combining scripting agility with automatic static type inference, a high-performance bytecode VM, and experimental native compilation for machine binaries.
// Automatic static type inference
name = "Nyl"
version = 1.0
active = true
// Built-in collections
languages = ["C", "Lua", "Nyl"]
config = {
"debug": false,
"optimization": 2
}
print("Welcome to the language: " + name)
print("Type of 'version': " + typeOf(version)) // number
// Recursive function
fn fib(n) {
if n <= 1 { return n }
return fib(n - 1) + fib(n - 2)
}
// Iteration with range
for i in 0..9 {
print("fib(" + i + ") = " + fib(i))
}
# 1. Direct execution via Bytecode VM
nyl app.nyl
# 2. Bundle into self-contained executable
nyl -build app.nyl
# 3. Native compilation (EXPERIMENTAL)
# Generates static machine binary via zig cc or clang
nyl compile app.nyl -target x86_64-linux-musl -o dist/
Project Architecture
Engineered for efficiency and seamless embedding
Nyl combines the simplicity of scripting with static verification guarantees, providing practical tooling for developers building modern systems.
Embeddable like Lua
Designed from first principles to operate smoothly inside host processes. Ideal for automation scripts, game engines, web services, and plugin architectures with minimal memory overhead.
Static Type Inference
No need to annotate types across everyday code. The compiler infers types during static analysis, catching runtime errors before execution without verbose ceremony.
Hybrid Execution: VM & Native Compilation
Develop interactively in the REPL or run instantly via the bytecode virtual machine. When maximum raw performance is required, compile down to native machine code.
Batteries-Included Standard Library
Built-in modules for file I/O, networking, math, cryptography, JSON parsing, and local key-value/database storage without relying on heavy external package managers.
Getting Started
How to test and evaluate Nyl
Nyl is developed by NylSystems. You can test the language instantly in your browser or request evaluation binaries for your environment.