BABLR<br>Welcome to"],"data-astro-cid-nlow4r3u":[0,true]}" ssr client="only" opts="{"name":"DemoText","value":"solid"}">
The next-gen LR parser framework for creating elegant and efficient language<br>tools
Read our<br>release announcement!
Our APIs get out of your way so you can write code
We're building an API-first IDE centered around a Document Object Model (or DOM) for code. We hope to create a new generation of tools that are more<br>trustworthy, transparent, powerful, and approachable in order to make software<br>literacy less rare. We believe when that software literacy is rare the incentives<br>are strong for software to be used to manipulate people rather than to serve<br>them.
Tool Authors<br>Create and maintain tools with powerful abstractions and simplified workflows.
IDE Developers<br>Build rich editing experiences with comprehensive language support.
Language Authors<br>Design and implement languages with sophisticated parsing capabilities.
Roadmap
Building the future of parsing, one milestone at a time
Planned<br>1.0.0<br>Declare the BABLR APIs stable
More implementations<br>Try using BABLR to port itself to... Python? Rust?
Snapshot testing<br>Use BABLR to update test files when the expected results change
Paneditor<br>A browser-based semantic code editor using an agAST document as a DOM. Structural search powered by Spamex
Far.OS<br>A UNIX-inspired in-browser operating system with streaming data and a virtual filesystem
In Progress<br>Documentation<br>API docs, guides, architecture and more
Broader Language Support<br>Currently incomplete grammars include Typescript, Python, and Ruby. Help us finish those and add more!
Virtual Filesystem<br>nodes let you put a whole repo into one CSTML or agAST tree!
Structural Hashing<br>Enables progressive tree transfer and git-like version control
Snippets/Forge<br>A remote peer with a fancy web UI! Free for open source projects
Completed<br>CSTML<br>A modern, XML-like markup language that avoids repeating XML's mistakes
agAST<br>Uses btrees to store CSTML documents in a way that is monomorphic, deeply immutable, and safe from prototype injection
Guarded Spans<br>A parser author can set a guard pattern which, until cleared, will seem to end the input when matched
Themes<br>Users can use CSS to add custom styling to code
CLI<br>Runs and traces parsers. Includes helpful syntax highlighting.
Open Source
Learn about BABLR and its mission. Contribute to our growing community.
Community
Join our Discord to offer feedback, ask questions, and help guide our<br>roadmap.
Documentation
Comprehensive guides and examples to get you started quickly.
Frequently Asked Questions
What is BABLR?
BABLR is a parser framework roughly comparable to Tree-sitter, but<br>built from the ground up for the web. It is meant to be "everything<br>but the GUI" of an IDE. It can provide version control, syntax<br>awareness, and the integration APIs that will allow products built on<br>the BABLR core to support our ecosystem of compatible libraries and<br>extensions.
Its purpose is to faciliate experimentation with new UX paradigms,<br>particularly by faciliating the creation of new generation of<br>"semantic-syntactic" code editors. Such an editor is syntactic in that<br>it presents code as 2D text, but can also be semantic by not (ever)<br>allowing invalid syntax like unclosed quotes or mismatched braces.<br>Instead such an editor should be centered around compostion: it should<br>make logically-coherent pieces of code feel like they can be taken<br>apart and snapped together with the delightful ease usually associated<br>with Lego bricks.
Why another toolchain?
Existing projects which BABLR competes with generally fit into one of a<br>few categories:<br>Tools for writing Javascript, like ESLint, Prettier, or Babel
Toolchains for writing Javascript, like Biome (in Rust), VoidZero<br>(in Rust), or Typescript (moving to Go)
Toolchains for working with code in any language, like ANTLR,<br>TreeSitter, or SrcML
BABLR is the first full toolchain written in Javascript for working with<br>code in any language!
We needed to own a full toolchain to be able to experiement with<br>simplicity-focused full-stack adaptations like gap parsing.
We wanted our toolchain to be multilingual so that once we built<br>trust in our it we could take it with us to projects written in any<br>programming language and give it to people who speak any human<br>language.
We wanted the toolchain to be written in Javascript so that it would<br>be an asset to anyone with a web browser, and could welcome to its<br>community of collaborators and maintainers anyone who knows<br>Javascript
Is BABLR open source?
BABLR code is open source under the MIT License. In addition the<br>project is "open" in the sense that its complete development history<br>is recorded in a public forum (our<br>Discord)<br>where community members are welcome to come and share their<br>experiences and insights for how to improve the product.
Because we need to make money the Silphium Labs team that built BABLR<br>will also start to build closed-source products, yet we believe...