Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
L

lisette

> 编程语言
Open source

A little language inspired by Rust that compiles to Go

1.4K stars0 likes0 views
WebsiteGitHub

About

A little language inspired by Rust that compiles to Go

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 and try blocks
  • Go-style interfaces, channels, goroutines

Quietly practical:

  • Interop with Go's ecosystem
  • Linter, formatter, 500+ diagnostics
  • Fast incremental compiler, readable Go
  • LSP for VSCode, Neovim, Zed, GoLand

Quick tour

Enums and pattern matching:

enum Shape {
  Circle(float64),
  Rectangle { width: float64, height: float64 },
}

fn area(shape: Shape) -> float64 {
  match shape {
    Circle(r) => 3.14 * r * r,
    Rectangle { width, height } => width * height,
  }
}

Go interop and ? for error handling:

import "go:os"
import "go:encoding/json"
import "go:fmt"

fn load_config(path: string) -> Result<Cfg, error> {
  let data = os.ReadFile(path)?
  let mut config = Cfg { port: 8080, debug: false }
  json.Unmarshal(data, &config)?
  Ok(config)
}

fn main() {
  match load_config("app.json") {
    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.DefValue),
  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 - Set up a Lisette project
  • Safety - Go issues Lisette prevents
  • Reference - Full language reference

Author

© 2026 Iván Ovejero

GitHub Issues· 5 open

View all on GitHub
  • #1438

    Mutable refs: conflict with imported Go libraries

    Updated Sep 13, 2026
  • #1062

    Zero value for generic type parameter

    feature-requestUpdated Sep 10, 2026
  • #961

    Default field values

    feature-requestUpdated Jul 25, 2026

Highlights

  • •Hindley-Milner type system
  • •Algebraic data types, pattern matching
  • •Expression-oriented, immutable by default
  • •Rust-like syntax plus |> operator and try blocks
  • •Go-style interfaces, channels, goroutines
  • •Interop with Go's ecosystem
  • •Linter, formatter, 500+ diagnostics
  • •Fast incremental compiler, readable Go
  • •LSP for VSCode, Neovim, Zed, GoLand
  • •Quickstart - Set up a Lisette project

> Tags

Rustcompilergoprogramming-languagerust

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言