• Rust 97.6%
  • Python 0.7%
  • CSS 0.7%
  • HTML 0.4%
  • PLpgSQL 0.2%
  • Other 0.4%
Find a file
2026-02-27 15:28:37 +01:00
.config runner: arrow improve perf with converters 2026-02-26 17:45:10 +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 runner: unify trait and protocol interfaces 2026-02-25 11:12:57 +01:00
lutra-cli tui: refactor file watcher 2026-02-27 15:28:37 +01:00
lutra-codegen runner: migrate channel to async, expand protocol 2026-02-24 09:29:00 +01:00
lutra-compiler tui: refactor file watcher 2026-02-27 15:28:37 +01:00
lutra-interpreter runner: arrow writing of arbitrary top-level types 2026-02-26 16:35:11 +01:00
lutra-ir compiler: layout of recursive types 2026-01-13 13:19:12 +01:00
lutra-runner runner: unify trait and protocol interfaces 2026-02-25 11:12:57 +01:00
lutra-runner-duckdb runner: duckdb pull parquet 2026-02-25 11:12:57 +01:00
lutra-runner-postgres runner: unify trait and protocol interfaces 2026-02-25 11:12:57 +01:00
lutra-sql build: v0.5.0 2026-02-22 16:37:26 +01:00
lutra-tui tui: refactor file watcher 2026-02-27 15:28:37 +01:00
tests runner: arrow improve perf with converters 2026-02-26 17:45:10 +01:00
website runner: rename get_interface to pull_schema 2026-02-23 13:18:14 +01:00
.gitignore build: nix derivation for CLI 2026-02-17 11:11:52 +01:00
Cargo.lock runner: arrow improve perf with converters 2026-02-26 17:45:10 +01:00
Cargo.toml build: v0.5.0 2026-02-22 16:37:26 +01:00
flake.lock build: update dev env & website highlighting 2026-02-12 10:36:49 +01:00
flake.nix build: nix derivation for CLI 2026-02-17 11:11:52 +01:00
justfile build: v0.5.0 2026-02-22 16:37:26 +01: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

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.