RayQuiro 0.1.0
RayQuiro 0.1.0 is the first stable public release of the RayQuiro programming language and runtime. It is built around the rqio CLI, direct .rq execution, VM packaging, native module installation, auto-updates, executable branding, and a rich engine/runtime surface.
What Changed In 0.1.0
0.1.0 is a refinement of the foundations laid in 0.0.2. The language itself is unchanged — the focus of this release is on tooling, developer experience, and stability.
Key Highlights
- Executable Icon Branding —
rqio.exenow embeds the official RayQuiro logo using Win32 resources, making it identifiable in the file system, taskbar, and Alt-Tab switcher. - Interactive Auto-Update System — On startup,
rqioquietly checks for updates once every 24 hours. If a new version is found, it prompts the user and handles the download, replacement, and automatic relaunch transparently. - VS Code Extension
0.1.0— Therayquiro-langVS Code extension is updated to0.1.0with comprehensive autocomplete, hover documentation, formatting, and command palette support. - Build System Cleanup — The build script now conditionally compiles native modules and filters spurious GCC/Clang COMDAT noise from linker output.
Core Language And Runtime
RayQuiro 0.1.0 includes all core language capabilities:
.rqsource files with therqiorunner- Direct execution via
rqio file.rq - VM path via
rqio run --vm file.rq - Native build via
rqio build file.rq - Bytecode packaging via
rqio pack file.rq - Distributable bundle output via
rqio bundle file.rq
Core Language Features
| Feature | Description |
|---|---|
var / let | Mutable and immutable variable bindings |
fn | Function declarations |
if / else | Conditional branching |
while | Condition-based loops |
for | C-style iteration loops |
return / break / continue | Control flow |
Arrays [...] | Array literals and indexing |
Multiline strings """...""" | Triple-quoted multiline string literals |
| JSON-like tables | Object access from json.parse(...) |
Built-In System Modules
These namespaces are compiled directly into rqio and do not need installation:
| Namespace | Purpose |
|---|---|
rayquiro.fs | File system — read, write, copy, remove, exists |
rayquiro.env | Environment variables — get, set, path_add |
rayquiro.process | External processes — run commands, get exe dir |
rayquiro.time | Time helpers — now_ms, unix_ms, sleep |
rayquiro.json | JSON — parse and stringify |
rayquiro.os | Operating system utilities — name, arch, cwd, paths |
rayquiro.net | Low-level TCP sockets — connect, send, recv, close |
rayquiro.http | HTTP Client — GET and POST requests |
rayquiro.db | PostgreSQL Database — connect, query, exec, scalar |
Official Installable Native Modules
These modules are distributed separately as .dll files and require installation:
rqio install rayquiro.web
rqio install rayquiro.ui
rqio install rayquiro.app
rqio install rayquiro.engine
Or install into the current project only:
rqio install rayquiro.engine --local
| Module | Purpose |
|---|---|
rayquiro.web | Static site generation, routing, live server |
rayquiro.ui | High-level native Windows UI (cards, hero, buttons) |
rayquiro.app | Low-level Win32 controls |
rayquiro.engine | 3D/2D rendering engine, scene, entities, lighting |
CLI Commands Reference
| Command | Description |
|---|---|
rqio file.rq | Run a RayQuiro source file |
rqio run --vm file.rq | Execute via the VM path |
rqio build file.rq | Compile to a Windows executable |
rqio pack file.rq | Package to .rqb bytecode |
rqio bundle file.rq -o dir | Create a distributable bundle |
rqio build-vm file.rq -o dir | VM-focused bundle |
rqio init <name> | Initialize a new project |
rqio install <module> | Install a native module globally |
rqio install <module> --local | Install a native module locally |
rqio framework install <repo> | Install a source framework |
rqio self-update | Manually trigger a self-update |
rqio version | Print the current CLI version |
Project Layout
A typical RayQuiro project:
my-app/
main.rq
rqproject.json
.rq_modules/
native/
engine.dll
build/
Minimal starter:
rqio init my-app
cd my-app
rqio
Example rqproject.json:
{
"name": "my-app",
"version": "1.0.0",
"entry": "main.rq",
"build_dir": "build"
}