awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·

Domain specific languages

Ranking updated Aug 7, 2026

For domain specific languages, the strongest matches are tree-sitter/tree-sitter (Tree-sitter is a prominent parser generation framework that builds), racket/racket (Racket is a full-featured language workbench designed explicitly for) and babel/babel (Babel is a widely used JavaScript compiler and AST). zaach/jison and geal/nom round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.

Discover the best open-source domain-specific language repositories on GitHub, ranked by stars and activity. Compare and pick the right one.

Domain specific languages

Find the best repos with AI.We'll search the best matching repositories with AI.
  • tree-sitter/tree-sittertree-sitter avatar

    tree-sitter/tree-sitter

    23,848View on GitHub↗

    Tree-sitter is a parsing system and incremental parsing framework designed to generate high-performance syntax trees from source code. It functions as a language parsing engine that compiles formal grammar definitions into portable code, which can then be integrated into text editors and development tools to facilitate structural analysis, code navigation, and syntax highlighting. The project distinguishes itself through its ability to maintain valid, usable syntax tree structures even when source code contains syntax errors or incomplete fragments. It utilizes a generalized parsing algorithm

    Tree-sitter is a prominent parser generation framework that builds robust abstract syntax trees and supports incremental parsing for custom grammars, directly matching your need for building and executing domain-specific languages.

    RustParser Generators
    View on GitHub↗23,848
  • racket/racketracket avatar

    racket/racket

    5,157View on GitHub↗

    Racket is a general-purpose, multi-paradigm programming language in the Lisp family designed for language creation. It functions as a language workbench, providing a platform for designing and implementing custom programming languages through a flexible system of macros and modules. The system distinguishes itself by offering a comprehensive suite for semantics engineering, allowing for the construction of specialized language subsets and educational layers. It includes tools for custom language design, such as lexer and parser generation, as well as the ability to define module expansion rul

    Racket is a full-featured language workbench designed explicitly for language creation, providing robust macro systems and tools for designing custom programming languages, abstract syntax trees, and semantics engineering.

    RacketLanguage WorkbenchesParser Generators
    View on GitHub↗5,157
  • babel/babelbabel avatar

    babel/babel

    44,009View on GitHub↗

    Babel is a pluggable JavaScript compiler and transpiler that converts modern ECMAScript syntax into backwards-compatible versions of the language. It functions as an abstract syntax tree manipulator, parsing source code into a hierarchical structure to traverse and modify nodes for custom code transformations. The system utilizes a plugin-driven architecture to apply specific transformation rules and supports presets that bundle multiple plugins into named configuration groups. This enables the transformation of experimental syntax and the injection of non-global polyfills to ensure consisten

    Babel is a widely used JavaScript compiler and AST manipulation tool that handles parsing, traversal, and code generation, making it a powerful choice for working with language syntax though specifically tailored to JavaScript rather than arbitrary general-purpose DSLs.

    TypeScriptAbstract Syntax Tree ToolsCode GenerationAST Transformation Tools
    View on GitHub↗44,009
  • zaach/jisonzaach avatar

    zaach/jison

    4,385View on GitHub↗

    Jison is a JavaScript parser generator that implements the LALR parsing algorithm. It creates tools to analyze custom programming languages by converting structured input into tokens and trees. The project functions as a Bison-compatible generator, accepting grammars in a format compatible with the Bison parser generator to produce JavaScript parsers. It covers the requirements for compiler frontend development, including the implementation of domain-specific languages and syntax analysis tooling. Its capabilities extend to custom language parsing and the generation of parsers via a command

    Jison is a JavaScript parser generator that builds LALR parsers and abstract syntax trees from custom grammars, making it a useful tool for implementing domain-specific languages despite lacking built-in code generation features.

    JavaScriptGrammar-Based Custom Parsers
    View on GitHub↗4,385
  • geal/nomGeal avatar

    Geal/nom

    10,422View on GitHub↗

    nom is a Rust parser combinator framework used to build complex parsers for binary and text data. It functions as an abstract syntax tree generator and a bit-level binary parser, allowing users to construct structured data by combining small, reusable parsing functions. The framework provides specialized support for zero-copy binary parsing, extracting data as slices from raw byte arrays to avoid memory allocations. It also includes a streaming data parser capable of processing partial input chunks from networks or files and signaling when additional input is required. The project covers a b

    Nom is a parser combinator framework in Rust that lets you build custom grammar parsers and handle data extraction, though it focuses on parser building blocks rather than a full end-to-end language workbench or code generation suite.

    RustParser Combinator FrameworksParser Combinators
    View on GitHub↗10,422
  • sweet-js/sweet-coresweet-js avatar

    sweet-js/sweet-core

    4,559View on GitHub↗

    Sweet-core is a JavaScript source-to-source compiler and Lisp-style macro system. It functions as a syntax transformer that extends JavaScript by allowing the definition of custom syntax and operators during the compilation process. The system provides a framework for building domain-specific languages through hygienic, recursive macro expansion and the creation of new language constructs. It distinguishes itself by supporting custom operator definitions with configurable associativity and precedence to control expression evaluation. The compiler includes a specialized module system for mana

    Sweet-core is a JavaScript macro system and source-to-source compiler that provides custom grammar extensions and abstract syntax tree transformations, making it a capable tool for building domain-specific languages despite lacking a traditional parser generator.

    JavaScriptAbstract Syntax Tree TransformationsCompile-Time Code Generation
    View on GitHub↗4,559
  • antlr/antlr4antlr avatar

    antlr/antlr4

    18,928View on GitHub↗

    ANTLR is a grammar-based code generator and multi-language parser generator used to design and implement custom languages. It functions as a toolkit for transforming formal language definitions into executable source code for processing structured text or binary files, while providing a framework for automatically constructing and traversing hierarchical parse trees. The project is distinguished by its ability to generate lexers and parsers in various target programming languages from a single shared grammar definition. It supports grammars containing direct left recursion and utilizes adapti

    ANTLR is a robust parser generator and language development toolkit that lets you define custom grammars, build syntax trees, and generate multi-language code for processing domain-specific languages.

    JavaFormal Grammar Parser GeneratorsMulti-Language Parser GenerationAdaptive Prediction Caches
    View on GitHub↗18,928
  • hyperjumptech/grule-rule-enginehyperjumptech avatar

    hyperjumptech/grule-rule-engine

    2,505View on GitHub↗

    Grule is a business rule engine for Go that decouples complex decision-making logic from core application code. It provides a framework for defining, versioning, and executing business rules through a domain-specific language, allowing logic to be managed independently of the underlying software implementation. The engine distinguishes itself by utilizing a formal grammar-based parser and a Rete-inspired pattern matching algorithm to evaluate logic against data facts efficiently. It supports dynamic system modeling by enabling runtime updates to policies and providing thread-safe knowledge ba

    Grule is a business rule engine and domain-specific language framework for Go that features a formal grammar parser and abstract syntax tree evaluation, fitting the core requirements for executing custom business languages.

    GoParser Generators
    View on GitHub↗2,505
  • dotnet/roslyndotnet avatar

    dotnet/roslyn

    20,241View on GitHub↗

    The .NET Compiler Platform is a collection of open-source APIs for C# and Visual Basic that provides deep code analysis, refactoring, and automated source code generation. It serves as the core infrastructure for building development tools, offering a platform to inspect, modify, and understand source code through immutable syntax trees and semantic models. The platform distinguishes itself by providing full-fidelity syntax trees that preserve every character of source code, including whitespace and comments, alongside an incremental compilation pipeline that enables near-instant feedback dur

    The .NET Compiler Platform provides deep code analysis, immutable syntax trees, and compiler APIs, making it a powerful choice for building language tools within the C# ecosystem despite being tailored specifically to C# and Visual Basic rather than arbitrary custom DSLs.

    C#Code Transformation ToolsCompile-Time Code Generation
    View on GitHub↗20,241
  • kach/nearleykach avatar

    kach/nearley

    3,740View on GitHub↗

    Nearley is a JavaScript parser toolkit and context-free grammar compiler. It functions as an Earley parser generator that transforms BNF-like grammar definitions into executable code capable of analyzing text and generating abstract syntax trees. The project is distinguished by its ability to handle any context-free grammar, including those with left recursion and ambiguity, by maintaining multiple valid derivations for a single input. It further supports incremental parsing, allowing input strings to be processed in chunks to provide partial results and real-time feedback. Beyond core parsi

    Nearley is a JavaScript parser toolkit and Earley parser generator that compiles grammars into executable code for building abstract syntax trees, making it a solid building block for domain-specific languages.

    JavaScriptModular Grammar Definitions
    View on GitHub↗3,740
  • holistics/dbmlholistics avatar

    holistics/dbml

    3,520View on GitHub↗

    DBML is a domain-specific language and schema definition language used for documenting database architecture and design. It provides a human-readable text format for defining database tables, columns, and relationships in a standardized way. The project functions as a relational schema parser and SQL schema generator. It transforms declarative design specifications into an abstract syntax tree for programmatic manipulation and converts these definitions into executable SQL statements across various database dialects. The system covers relational data modeling, database schema design, and arc

    DBML provides a domain-specific language for database schemas along with built-in parsing, abstract syntax tree generation, and SQL code generation, though it is tailored specifically for database design rather than a general-purpose language workbench.

    JavaScriptDomain Specific LanguagesSQL Schema GeneratorsDatabase Architecture Documentation
    View on GitHub↗3,520
  • witheve/evewitheve avatar

    witheve/Eve

    7,225View on GitHub↗

    Eve is a domain-specific language IDE and integrated logic editor that combines a custom programming language with a dedicated editor to define application logic and state. It functions as a reactive state management system that monitors state variables and automatically triggers functional responses. The environment features an integrated runtime-editor loop that couples the language execution environment with the text editor to accelerate the development cycle. This setup enables the definition of software behavior and state transitions using an embedded domain-specific language. The proje

    Eve is a domain-specific language IDE and reactive programming environment that integrates a custom language with an editor for managing application logic, though it is more focused on reactive state management than traditional parser generation.

    TypeScriptIntegrated Logic EditorsLogic EditorsApplication Logic Implementations
    View on GitHub↗7,225
  • kaitai-io/kaitai_structkaitai-io avatar

    kaitai-io/kaitai_struct

    4,628View on GitHub↗

    Kaitai Struct is a framework for declarative binary specification that provides automated parser and serializer generation across multiple programming languages. It uses a portable, domain-specific language to describe the layout of binary files and network packets, converting these specifications into source code for reading and writing binary data. The system enables cross-language data processing by translating a single structural definition into native source code for languages including C++, C#, Go, Java, JavaScript, Python, and Rust. This approach allows the same binary data specificati

    Kaitai Struct is a declarative DSL framework specifically designed for generating parsers and serializers for binary data structures across multiple programming languages.

    ShellParser GeneratorsBinary Buffer ParsingBinary Format Definition Languages
    View on GitHub↗4,628
Compare the top 10 at a glance
RepositoryStarsLanguageLicenseLast push
tree-sitter/tree-sitter23.8KRustmitFeb 20, 2026
racket/racket5.2KRacketNOASSERTIONJun 23, 2026
babel/babel44KTypeScriptMITJun 22, 2026
zaach/jison4.4KJavaScript—Oct 14, 2022
geal/nom10.4KRustMITAug 26, 2025
sweet-js/sweet-core4.6KJavaScriptBSD-2-ClauseOct 26, 2017
antlr/antlr418.9KJavaBSD-3-ClauseFeb 16, 2026
hyperjumptech/grule-rule-engine2.5KGoNOASSERTIONFeb 10, 2026
dotnet/roslyn20.2KC#mitFeb 20, 2026
kach/nearley3.7KJavaScriptMITNov 14, 2024

Related searches

  • Prompt engineering patterns
  • a programming language for building software applications
  • Schema definition languages
  • a programming language for building web applications
  • a library for parsing programming languages
  • Language definition files
  • a project for learning language design hands-on
  • Other languages and ecosystems