An experimental Lasso 9 runtime for modern Linux. Strict compatibility, no silent semantic drift, built in Rust.
LaiRu — Lasso in Rust — is an open-source interpreter targeting Lasso 9 compatibility, running on modern Linux. Where the original Lasso 9 server is no longer maintained, LaiRu aims to give existing Lasso applications a path forward without silent changes to their semantics.
LaiRu 0.1 is a runnable compatibility foundation. It implements a focused core of the Lasso 9 language — enough to run real code, serve real pages, and query MySQL databases — while clearly documenting its current limits. When a feature is missing, LaiRu fails loudly rather than silently mishandling legacy behaviour.
This page is being rendered by LaiRu right now. A few expressions evaluated at request time:
| 6 * 7 | → | 42 |
| 'hello world'->uppercase | → | HELLO WORLD |
| array(1, 2, 3, 4, 5)->sum | → | 15 |
| 42 > 0 ? 'positive' | 'negative' | → | positive |
| date()->format('YYYY-MM-dd') | → | 2026-05-13 |
Variables, literals, operators, arbitrary-precision arithmetic, methods, and control flow.
Custom types, traits, parent types, data fields, member methods, and access control.
Native query syntax: with / where / order by / group by / select and aggregates.
Closures, yield/resume, detached captures, continuations, and error handlers.
Bracket-tag rendering for .lasso, .lasso9, and .lp files with LDML support.
TCP and unix socket serving, FastCGI/FPM, nginx and Apache integration.
Inline queries, prepared statements, TLS, result metadata, and connection pooling.
Collections, strings, dates, math, encoding, crypto digests, file operations.
eval, run, render, check, ast, compat-report, serve, and fpm commands.
cd lasso-rust cargo build cargo test
cargo run -- eval "local(name) = 'LaiRu'; #name + ' 0.1'"
cargo run -- run examples/core.lasso
cargo run -- render examples/index.lasso
cargo run -- serve --addr 127.0.0.1:9010 --docroot /var/www/html
The service renders files ending in .lasso, .lasso9, or
.lp, and serves everything else as static assets.
See the Service page for nginx, Apache, and FastCGI integration.
A Lasso template rendered by LaiRu looks like ordinary HTML with bracketed expressions:
<!doctype html>
<html lang="en">
<body>
<h1>[local(name) = 'Ada']Hello, [#name]!</h1>
[define square(n) => #n * #n]
<p>7 squared is [square(7)].</p>
<ul>
[with item in array('Lasso', 'in', 'Rust')
select '<li>' + #item + '</li>']
</ul>
</body>
</html>