Jun 25th 2026

Fastbelt version 0.1

Mark SujewMark Sujew

A few months ago, we introduced the Fastbelt project. Since then, we’ve been continuously working on it—here we are now, excited to announce the first official version of Fastbelt!

Feature set

Our first version comes with everything developers need to build well-functioning language servers:

Project scaffolding. Anyone looking to build a new project on top of Fastbelt can use the new fastbelt scaffold command to create a new Go project with everything set up and ready to go. See below for more info on how to get started with Fastbelt. Special thanks to Steve Ruble for contributing this feature!

Grammar language. Developers coming from other language engineering frameworks such as Xtext and Langium will feel right at home with Fastbelt’s grammar language. Install the Fastbelt VSCode extension to get instant editor support for it—powered by Fastbelt itself.

Fully-powered parser. Fastbelt generates recursive descent parsers with error recovery and a lookahead system inspired by the ANTLR4 parser generator. This means the parser is both powerful enough to parse the most complex languages and capable of recovering effectively from any parsing errors along the way.

Symbol referencing. Cross-references between language elements are resolved automatically, with no manual wiring required. Fastbelt handles indexing and linking across files in the workspace, which is a prerequisite for most non-trivial language features. Specialized behavior can be achieved by writing custom scoping logic.

Workspace builds. On startup, Fastbelt identifies all relevant files in a workspace. Document building happens fully in parallel and is thread-safe. Builds are split into a write-only and read-only phase to ensure that LSP services always act on up-to-date data.

LSP services. Fastbelt comes with various out-of-the-box implementations for common and indispensable language server features:

  • Code completion
  • Go to definition
  • Go to references
  • Document symbols/outline
  • Workspace symbols
  • Folding ranges
  • Hover

Testing helpers. The typefox.dev/fastbelt/test package contains all necessities for testing any language implementation. Be it parsers, cross-references, or LSP features. All can be tested using the builtin testing utilities.

Web compatibility. When Langium launched in 2021, we didn’t consider the web as an environment to run language servers. However, we were convinced quite quickly that this is an incredibly important use case for language engineering frameworks. We made sure that Fastbelt is just as capable in that regard. This is accomplished by compiling the language server to Go’s WASM target. Have a look at our statemachine example for a showcase of that.

High performance. We treat performance as a first-class feature of Fastbelt. We are up to 50⨉ faster and require up to 20⨉ less memory on common workloads than other language engineering frameworks. Read more about Fastbelt’s architecture to see how we got here. We’ll let the numbers speak for themselves:

Our roadmap

We aim for production readiness within the year. For this, we still plan to add a few additional features to Fastbelt:

Lexer modes. Specific languages require stack-based lexers to properly parse certain features, such as template strings. We want our lexing infrastructure to be powerful enough to handle this problem natively.

Infix operator rules. In version 4.0 of Langium, we added a new grammar syntax to define parser rules for infix operators. This massively improves the readability of grammars, especially in the presence of deeply nested operator precedence. Additionally, it also acts as a performance optimization, since the grammar can be rewritten internally to prevent the deep parser rule call stacks that are usually required to handle operator precedence in top-down parsers. The latter point makes this especially relevant for Fastbelt.

Multi-language support. For more complex language engineering projects, the ability to support multiple languages within a single language server is a must-have.

File system change handling. While Fastbelt already correctly reacts to file changes in the editor, file creation, change or deletion on the file system aren’t handled yet.

Profiling. To keep the promise of the fastest language tooling around, we want adopters of Fastbelt to be well equipped to find bottlenecks and performance issues. For this, we need proper profiling tools built into Fastbelt.

Further LSP features. While we support the most important LSP features already, there are two that require a lot of care and attention to get right: semantic tokens (i.e. semantic code highlighting) and formatting. Unfortunately we can’t provide meaningful out-of-the-box implementations for them, since they rely on the semantics of the language and the design decisions of the language designer. Therefore, they require special care in their API design. We have postponed them to a later release to give us the time we need to implement them properly.

Getting started

The quickest way to get started with Fastbelt is to install our CLI:

go install typefox.dev/fastbelt/cmd/fastbelt@v0.1

Afterwards, you can go ahead and scaffold a new project:

fastbelt scaffold --module example.com/you/mylang --language "MyLanguage" --vscode

For more info, please have a look at the README in our GitHub repo. We already have several examples (arithmetics and statemachine) available.

Conclusion

Fastbelt 0.1 marks an important milestone for us: a language engineering framework that is fast, capable, and ready to build on. With grammar tooling, cross-references, parallel workspace builds, and the most essential LSP services in place, you have everything you need to start crafting your own language servers today.

We’re just getting started. As we approach production readiness, we’d love for you to try Fastbelt, build something with it, and share your feedback! Head over to our GitHub repository to get involved, open issues, or simply follow along.

About the Author

Mark Sujew

Mark Sujew

Mark is the driving force behind a lot of TypeFox’s open-source engagement. He leads the development of the Eclipse Langium and Theia IDE projects. Away from his day job, he enjoys bartending and music, is an avid Dungeons & Dragons player, and works as a computer science lecturer at a Hamburg University.