emersion/minilustre — explained in plain English
Analysis updated 2026-07-17 · repo last pushed 2019-01-07
Study a small, readable end-to-end compiler as a teaching example for how compilers work.
Use this as a starting point for research into Lustre or reactive programming languages.
Learn how a parser builds a model of source code before converting it to LLVM IR.
Explore how a subset of a real-time reactive language compiles down to a lower-level format.
| emersion/minilustre | demomanito/helper | kelseyhightower/anthos-empathy-session | |
|---|---|---|---|
| Stars | 7 | 7 | 7 |
| Language | Go | Go | Go |
| Last pushed | 2019-01-07 | 2023-03-07 | 2019-05-01 |
| Maintenance | Dormant | Dormant | Dormant |
| Setup difficulty | moderate | easy | hard |
| Complexity | 4/5 | 1/5 | 1/5 |
| Audience | researcher | general | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires familiarity with LLVM IR and the Lustre language to make sense of the compiler's output.
Minilustre is a tiny compiler that translates a simplified version of the Lustre programming language into machine-readable instructions that can be executed. Think of it as a translator: you write code in a subset of Lustre, and the compiler converts it into a lower-level format called LLVM IR that computers can actually run. Lustre is an academic language designed for writing programs that need to react to inputs in real time, things like aircraft control systems or industrial automation software where timing is critical. Minilustre supports only a simplified version of the language, so it's easier to understand and build, but it covers the core ideas. The compiler uses a straightforward parsing approach that reads your code from left to right, building up a mental model of what you wrote before converting it down to LLVM IR, which is an intermediate format used by many programming tools. Someone learning how compilers work might use this project as a teaching example, it's small enough to read and understand end-to-end, but complete enough to do real compilation. A researcher exploring Lustre or reactive programming might use it as a starting point for a larger tool. Because the project is written in Go and only handles a subset of the language, it's not meant to replace full-scale Lustre compilers used in industry, but rather to be an accessible, minimal version that shows how the ideas work. The README doesn't go into detail about what specific language features are supported or what LLVM IR is, so if you want to use this you'd need to explore the code itself or have some familiarity with those concepts. It's the kind of project that's most useful if you're curious about how programming languages are built from the ground up.
A small Go-based compiler that translates a simplified version of the Lustre reactive programming language into LLVM IR.
Mainly Go. The stack also includes Go, LLVM IR, Lustre.
Dormant — no commits in 2+ years (last push 2019-01-07).
License is not stated in the available content.
Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.
Mainly researcher.
This repo across BitVibe Labs
Verify against the repo before relying on details.