Welcome to Scrii
Scrii is a small, dynamically typed scripting language with an embeddable C++23 core. Its whitespace-agnostic, semicolon-free C-style syntax stays easy to read, it parses fast, and it doubles as a great vehicle for dynamic configuration.
Highlights
- Dynamic typing — values carry their type at runtime:
int,long,float,double,string,char,boolean,nil, heterogeneousarray, key-valueobject, and first-classfunctionvalues. - Easy syntax — C-style
var/const,if/elif/else,for,foreach, andswitch, with no semicolons and no significant whitespace. - Fast parsing — a lightweight interpreter core that gets from source to running quickly.
- Great for dynamic configurations — scripts double as readable, executable config files.
- Embeddable — a C++ core with a stable host API for executing scripts, exchanging values, and bridging host functions.
- Native plugins — drop-in C++ shared libraries that register functions and modules directly into the scripting namespace.
- Tooling — a REPL/interpreter, a source formatter (
scrii_fmt), a language server (scrii_ls), and tree-sitter editor highlighting. - Big standard library — sorting, math, string handling, hashing, crypto, JSON, images, compression, file/path I/O, process control, time, and full networking (TCP/UDP/HTTP/WebSocket).
Documentation overview
- Getting started — build, run scripts, write a first program.
- CLI Reference —
scrii_replflags and REPL commands. - Examples — a topic-by-topic tour of runnable scripts.
- Language — Syntax, Types, Descriptors, Operators, Control Flow, Functions, Builtins, Errors.
- Standard library — everything under the global
stdobject (overview). - Tooling — the formatter (
scrii_fmt), language server (scrii_ls), and tree-sitter highlighting. - Native plugins and Embedding for C++.
note
Scrii is under heavy development. Expect the language and library surfaces to grow and occasionally change.