The libraries under our own work, in the open.
Federico Tomassetti and the Strumenta team maintain a set of open-source language-engineering libraries. They are the same ones our client projects run on, and they are Apache-2.0, so you can use them too.
Everything on this page is public and currently maintained. Where a project is a shared effort rather than ours alone, we say so, and where a repository has gone quiet we would rather leave it off than describe it as alive. Figures below were checked in August 2026 — the repositories themselves are the current source of truth.
What we maintain
Starlasu
Language-engineering framework · four languages
Starlasu is the backbone of our own parsers and transpilers: a common way to define abstract syntax trees, keep source positions attached to every node, walk and transform trees, and move models between tools. It exists as four sibling libraries so that a pipeline can cross runtimes without changing shape—starlasu-kotlin (formerly Kolasu) for the JVM, tylasu for TypeScript, starlasu-python (formerly Pylasu) for Python and sharplasu for .NET.
The Kotlin implementation is the reference one and the most complete; the others follow it. Documentation, including the Chisel method we use for incremental migrations, is at starlasu.strumenta.com.
ANTLR Kotlin target
Code generator and runtime for ANTLR 4
ANTLR ships official targets for Java, C#, Python, JavaScript, TypeScript, Go, C++, Swift, PHP and Dart. We wrote and maintain the Kotlin one. It generates a Kotlin Multiplatform library, so a single grammar yields a parser that runs on the JVM and Android, in the browser, on Node.js, and natively on macOS, Windows and Linux—from one codebase rather than one per platform.
It started as Federico’s project in 2018 and is now developed with contributors from outside Strumenta; releases have continued through 2026.
LionWeb
Open specification · multi-organization initiative
LionWeb—Language Interfaces on the Web—is a shared specification for how language-engineering tools exchange models and metamodels, so that a parser, an editor and a generator built by different people can work on the same model. It is not a Strumenta project: it is an initiative with contributors from several organizations, and we take part in it.
Federico is the principal author of lionweb-jvm, the JVM implementation of the specification, and also contributes to the reference LionWeb Server. Implementations exist for TypeScript, C#, Python and JetBrains MPS alongside the JVM one.
JavaParser and JavaSymbolSolver
Java parsing · community project, not ours
JavaParser is a widely used library for parsing, analyzing and transforming Java source. Federico created JavaSymbolSolver, the piece that answers the questions a bare syntax tree cannot—which declaration a name refers to, what the type of an expression is, which interfaces a class implements including indirectly—and it has since been merged into JavaParser itself as javaparser-symbol-solver-core.
He is one of the two most prolific contributors to the project by commit count. It is now led by others, and we mention it here as history and as a recommendation, not as something we maintain.
SmartReader
Content extraction for .NET
A C# port of Mozilla’s Readability: give it a web page, get back the article and its metadata without the navigation, the advertising and the rest of the page furniture. It came out of our own need to read the web programmatically, and it is the most used piece of software we have published outside language engineering.
Everything we have published is at github.com/Strumenta, including experiments and article companion code that we are not maintaining. Read the repository before depending on it: a public repository is not a promise, and a few of ours carry no license file, which means they are not open source however public they look.
Why we publish these
- Because you should be able to leave. A migration built on a proprietary intermediate representation is a migration you cannot take anywhere else. Ours runs on Apache-2.0 libraries you can read, fork and keep.
- Because the libraries get better when other people use them. The Kotlin ANTLR target has contributors we have never worked with, and it is better for it.
- Because interoperability needs a specification, not a vendor. That is the whole point of taking part in LionWeb rather than inventing our own exchange format.
If you would rather not build it yourself
These libraries are the raw material. If you need a finished parser for a specific language, we license the ones we have already built and we build new ones to order.
License our parsers
Production parsers for COBOL, RPG, PL/SQL, T-SQL, SAS, VBA/VB6, EGL and more, ready to license.
Custom parsers
For a language, dialect or in-house format that nobody has a parser for yet.
The ANTLR course
If you want to build it yourself, this is the shortest route from a blank grammar file to a working parser.
Using one of these, or thinking about it?
Tell us what you are building. If one of our libraries fits, we will say how; if it does not, we will say that instead.