The VIGIL Scripting Language
VIGIL is a statically typed, bytecode-compiled scripting language designed for building CLI tools, graphical programs, and libraries. It favors explicit behavior, batteries-included tooling, and easy distribution.
import "fmt";
fn main() -> i32 {
fmt.println("Hello, World!");
return 0;
}
make build
make testRun a program:
vigil run hello.vigilCreate a new project:
vigil new myapp
cd myapp
vigil run main.vigil| Command | Description |
|---|---|
vigil run |
Run a VIGIL script |
vigil check |
Type-check without running |
vigil test |
Run tests |
vigil fmt |
Format source files |
vigil doc |
Show documentation for modules or source files |
vigil debug |
Debug a script |
vigil new |
Create a new project |
vigil package |
Package a program as a standalone binary |
vigil repl |
Start interactive REPL |
vigil lsp |
Start Language Server Protocol server |
vigil embed |
Embed files as VIGIL source code |
- Static typing with type inference for locals
- First-class functions and closures
- Classes, interfaces, and enums
- Multi-return values and explicit error handling (
guard) deferfor cleanup- Built-in concurrency primitives
- Standard library:
fmt,math,os,fs,net,json,time,crypto, and more - Portable across Linux, macOS, Windows, and WebAssembly
include/vigil/ Public C API headers
src/ Compiler, VM, runtime, CLI, stdlib, platform layer
tests/ Unit tests
integration_tests/ CLI integration tests
examples/ Example programs
benchmarks/ Performance regression benchmark cases and thresholds
coverage/ Coverage thresholds and test-surface manifests
docs/ Language and project documentation
Apache License 2.0 — see LICENSE for details.