4 releases
Uses new Rust 2024
| new 0.1.2 | Mar 31, 2026 |
|---|---|
| 0.1.1 | Mar 21, 2026 |
| 0.1.0 | Mar 21, 2026 |
| 0.0.1 | Mar 2, 2026 |
#790 in Programming languages
Used in 3 crates
480KB
13K
SLoC
Lisette
Little language inspired by Rust that compiles to Go.
Safe and expressive:
- Hindley-Milner type system
- Algebraic data types, pattern matching
- Expression-oriented, immutable by default
- Rust-like syntax plus
|>operator andtryblocks - Go-style interfaces, channels, goroutines
Quietly practical:
- Interop with Go standard library
- Linter, formatter, 250+ diagnostics
- Fast incremental compiler, readable Go
- LSP support for VSCode, Neovim, and Zed
Quick tour
Enums and pattern matching:
enum Shape {
Circle(float64),
Rectangle { width: float64, height: float64 },
}
fn area(shape: Shape) -> float64 {
match shape {
Shape.Circle(r) => 3.14 * r * r,
Shape.Rectangle { width, height } => width * height,
}
}
Go interop and ? for error handling:
import "go:os"
import "go:io"
import "go:fmt"
fn load_config(path: string) -> Result<Cfg, error> {
let file = os.Open(path)?
defer file.Close()
let data = io.ReadAll(file)?
parse_yaml(data)
}
fn main() {
match load_config("app.yaml") {
Ok(config) => start(config),
Err(e) => fmt.Println("error:", e),
}
}
Option instead of nil and zero values:
match flag.Lookup("verbose") {
Some(f) => fmt.Println(f.Value),
None => fmt.Println("no such flag"),
}
let scores = Map.new<string, int>()
match scores.get("alice") {
Some(score) => fmt.Println(score),
None => fmt.Println("score not found"),
}
Pipeline operator:
let slug = " Hello World "
|> strings.TrimSpace
|> strings.ToLower
|> strings.ReplaceAll(" ", "-") // "hello-world"
Typed channels and concurrent tasks:
let (tx, rx) = Channel.new<string>().split()
task {
tx.send("hello")
tx.close()
}
match rx.receive() {
Some(msg) => fmt.Println(msg),
None => fmt.Println("closed"),
}
Learn more
- ๐ก
quickstart.mdโ Set up a Lisette project - ๐งฟ
safety.mdโ Go issues Lisette prevents - ๐
reference.mdโ Full language reference - ๐
roadmap.mdโ Status and planned work
Author
ยฉ 2026 Ivรกn Ovejero
Dependencies
~3.5โ7.5MB
~161K SLoC