LIZARD is a native Rust-based programming language focused on simple syntax and fast startup.
Current milestone: a native interpreter and CLI with functions, collections, loops, a growing standard library, terminal animation, and Windows/Linux/macOS release automation.
| Native Rust interpreter and runtime |
Readable Simple indentation-based syntax |
Practical CLI, REPL, formatter, checker, and builder |
Animated Terminal progress animation built in |
|
Get the latest LIZARD release from GitHub. The current release is v0.1.0. |
LIZARD requires Rust and Cargo. Clone the repository, run the example program, and verify the compiler with:
git clone https://github.com/surjolive/LIZARD.git
cd LIZARD
cargo run -- hello.lz
cargo testUse cargo run -- --help to see the available CLI commands. The installed
executables are named lz and lizard and use the same runtime.
LIZARD is open source under the MIT License. Use the links below for the rules that govern code, community participation, and security reports.
| Policy | Details |
|---|---|
| MIT License | Copyright (c) 2026 Surjo Live |
| Contributing guide | Development rules, testing, and pull request requirements |
| Code of Conduct | Community standards and expected behavior |
| Security policy | How to report a security vulnerability privately |
| Command | What it does |
|---|---|
cargo run -- hello.lz |
Run a LIZARD source file |
cargo run -- repl |
Start the interactive REPL |
cargo run -- -e "say 10 + 20" |
Execute inline source |
cargo run -- check hello.lz |
Parse and validate without running |
cargo run -- fmt hello.lz |
Print formatted source |
cargo run -- fmt --write hello.lz |
Format and save a source file |
cargo run -- build hello.lz --output hello.exe |
Build a native output |
cargo run -- new MyProject |
Create a project skeleton |
cargo run -- doctor |
Diagnose the current installation |
cargo run -- update --check |
Check for a newer release safely |
cargo run -- update |
Install the latest release |
cargo run -- upgrade |
Alias for update |
cargo run -- uninstall |
Remove the installed runtime and PATH entries |
cargo run -- --version |
Show version and runtime information |
cargo run -- --help |
Show all CLI help |
The VS Code language package is in editors/vscode/lizard-vscode. It registers
.lz files, syntax highlighting, snippets, run/check commands, and formatting
through the native LIZARD CLI.
Run the test suite after changing the parser, runtime, or CLI:
cargo testFor a fast compile-only check, use:
cargo checkThe full language and editor guide is available at docs/LIZARD-GUIDE.md.
- Native Rust implementation with a fast-starting interpreter and runtime
- Simple syntax with readable blocks and
.lzsource files - Core values: numbers, text, booleans,
null, lists, maps, and functions - Variables and expressions: arithmetic, comparisons, boolean operators, and interpolation
- Control flow:
if,else,while,repeat, andeach - Functions: parameters, return values, and reusable program logic
- Collections: indexing, slicing, list helpers, map values, and iteration
- Text:
toText,lower,upper,trim,contains,split, andjoin - Collections:
size,first,last,push,pop,reverse, andslice - Numbers:
toNumber,abs,floor,ceil,round,min,max, andclamp - Output:
say,print,echo,log,info, andaro - Terminal animation:
animate(message, frames, delayMs)for visible progress feedback
- REPL for experimenting with expressions and language features
- Formatter with preview and in-place
--writemodes - Checker for validating source without executing it
- Native builder for producing a standalone runtime output
- Project generator with
new ProjectName - Diagnostics with
doctor, version reporting, and clear runtime errors - Update tools with
update,upgrade, and safeupdate --checkmode - VS Code package with
.lzlanguage support, syntax highlighting, snippets, run/check commands, and formatting
For the complete installation, CLI, language, build, testing, and editor guide, see docs/LIZARD-GUIDE.md.
The package ecosystem specification is documented in
LIZARD_PACKAGE_ECOSYSTEM_SPECIFICATION.md.
The planned registry is packages.lizard.dev; registry and publishing features
are not yet implemented in the current interpreter.
Terminal animation is built into the runtime. The first argument is the message, the second is the number of frames, and the third is the delay between frames in milliseconds:
animate("Loading LIZARD", 8, 120)
print("Ready!")
For deterministic scripts and tests, use a delay of 0:
animate("Checking", 3, 0)
The animation works as a standalone function call, so it does not need to be
wrapped in say.
The installer downloads lz.exe and lizard.exe into
%LOCALAPPDATA%\LIZARD\bin and adds that directory to the user PATH.
From a cloned project directory:
$env:LIZARD_RELEASE_BASE_URL = "https://github.com/surjolive/LIZARD/releases/latest/download"
.\install.ps1From Command Prompt:
set LIZARD_RELEASE_BASE_URL=https://github.com/surjolive/LIZARD/releases/latest/download
install.batAfter publishing this repository, direct URL installation works from PowerShell:
$env:LIZARD_RELEASE_BASE_URL = "https://github.com/surjolive/LIZARD/releases/latest/download"
irm https://raw.githubusercontent.com/surjolive/LIZARD/master/install.ps1 | iexFrom CMD or any shell with curl and PowerShell:
set LIZARD_RELEASE_BASE_URL=https://github.com/surjolive/LIZARD/releases/latest/download
curl.exe -fsSL https://raw.githubusercontent.com/surjolive/LIZARD/master/install.ps1 | powershell.exe -NoProfile -ExecutionPolicy Bypass -Command -The published repository is surjolive/LIZARD.
Download the latest native release from the GitHub Releases page:
| Platform | Download |
|---|---|
| Windows x86_64 | lizard.exe or lz.exe |
| Linux x86_64 | See the latest release |
| macOS Intel | See the latest release |
On Linux or macOS, install the latest release with one command:
curl -fsSL https://raw.githubusercontent.com/surjolive/LIZARD/master/install.sh | shThe Unix installer places lz and lizard in ~/.local/bin. Set
LIZARD_INSTALL_DIR to choose another location. Releases are built
automatically by GitHub Actions whenever a v* tag is pushed.
Use the installed CLI to manage the runtime without downloading files manually:
# Check without changing anything
lz update --check
# Install the latest release
lz update
# Same operation as update
lz upgrade
# Remove LIZARD binaries and PATH entries
lz uninstallThe updater starts the platform installer in the background so the running
executable can exit before its files are replaced. Open a new terminal after an
update, then confirm the installed version with lz --version.
Run build.bat from Command Prompt or ./build.ps1 from PowerShell. The
release binaries are written to release/windows-x64/lz.exe and
release/windows-x64/lizard.exe.
The native Windows GNU target requires MinGW. The build scripts validate the Rust source first and then produce both CLI names from the same runtime.
say "Hello World"
x = 10
y = 20
say x + y
if x < y
say "LIZARD is simple and fast"
