#lutra #convert #record-batch #value #arrow #format-conversion #arrow-format #type-information #statically-typed-language

lutra-arrow

Arrow format conversion for Lutra: converting between Arrow RecordBatch and Lutra binary values

2 releases

Uses new Rust 2024

new 0.5.1 May 6, 2026
0.5.0 Feb 22, 2026

#2254 in Data structures


Used in 4 crates (3 directly)

Apache-2.0

285KB
7K SLoC

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.

Dependencies

~32MB
~720K SLoC