General-purpose query language https://lutra-lang.org
  • Rust 97.5%
  • Python 0.8%
  • CSS 0.7%
  • HTML 0.4%
  • PLpgSQL 0.2%
  • Other 0.4%
Find a file
2026-04-17 10:11:11 +02:00
.agents/plans compiler: language server go to definition 2026-03-11 16:42:17 +01:00
.config build: fix python tests 2026-03-23 07:59:00 +01:00
examples build: v0.5.0 2026-02-22 16:37:26 +01:00
LICENSES build: v0.5.0 2026-02-22 16:37:26 +01:00
lutra-arrow runner: arrow improve perf with converters 2026-02-26 17:45:10 +01:00
lutra-bin feat: expose project dependencies 2026-04-17 10:11:11 +02:00
lutra-cli refactor: new clippy lints 2026-03-25 13:17:30 +01:00
lutra-codegen runner: migrate channel to async, expand protocol 2026-02-24 09:29:00 +01:00
lutra-compiler feat: expose project dependencies 2026-04-17 10:11:11 +02:00
lutra-interpreter fix: no_std crates 2026-04-17 08:34:40 +02:00
lutra-ir feat: expose project dependencies 2026-04-17 10:11:11 +02:00
lutra-runner fix: no_std crates 2026-04-17 08:34:40 +02:00
lutra-runner-duckdb runner: duckdb pull parquet 2026-02-25 11:12:57 +01:00
lutra-runner-postgres bin: organize python tyi files 2026-03-23 11:30:47 +01:00
lutra-sql fix: no_std crates 2026-04-17 08:34:40 +02:00
lutra-tui feat: expose project dependencies 2026-04-17 10:11:11 +02:00
tests feat: expose project dependencies 2026-04-17 10:11:11 +02:00
website docs: website tweak 2026-04-05 10:20:38 +02:00
.gitignore refactor: upgrade to chumsky 0.12 2026-03-27 17:16:33 +01:00
Cargo.lock fix: no_std crates 2026-04-17 08:34:40 +02:00
Cargo.toml refactor: upgrade to chumsky 0.12 2026-03-27 17:16:33 +01:00
default.nix build: compat default.nix, app image, prune dev 2026-03-14 16:28:04 +01:00
flake.lock build: compat default.nix, app image, prune dev 2026-03-14 16:28:04 +01:00
flake.nix perf: samply setup 2026-03-25 14:52:49 +01:00
justfile fix: no_std crates 2026-04-17 08:34:40 +02:00
README.md website: short function notation 2026-01-06 14:20:31 +01:00
REUSE.toml build: v0.5.0 2026-02-22 16:37:26 +01:00
rust-toolchain.toml build: compat default.nix, app image, prune dev 2026-03-14 16:28:04 +01:00

Logo

Lutra

General-purpose query language
Home · Docs · Code · Zulip chat


Lutra is a language for preserving type information between different software components. It is a high-level, statically typed language, designed for querying data and expressing data structures.

type Album: {id: int16, title: text}

func get_albums(): [Album] -> std::sql::from("albums")

func get_album_by_id(album_id: int16): Album -> (
  get_albums()
  | find(this -> this.id == album_id)
)

It is minimal and designed to be extended to new execution targets. Currently, it can run on a reference-implementation interpreter and PostgreSQL.

Project status

Lutra is a personal passion project, currently in a proof-of-concept stage. It is not ready for production use. It works, but is not feature complete and will change in inconvenient ways.

Feel free to try it out or come and chat with me at Zulip.