A Rust framework for building incremental compilers, interpreters, and language servers with real-time codebase synchronization.
Lady Deirdre is a Rust framework for building incremental compiler front-ends, interpreters, and source code analyzers. It provides components to create and synchronize in-memory representations of source code—including lexical, syntactic, and semantic models—in real time as files change. This makes it suitable for developing new programming languages, compilers, and editor language extensions.
Language engineers and tooling developers creating new programming languages, compilers, interpreters, or IDE language servers, particularly those who need real-time, incremental analysis and error-resilient parsing.
Developers choose Lady Deirdre for its self-sufficient, dependency-free API that integrates incremental compilation, error-resilient parsing, and semantic analysis in a single framework, enabling both compiler and language server functionality from a shared codebase. Its support for WebAssembly and parallel computations offers flexibility for diverse deployment environments.
Compiler front-end foundation technology.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Can build syntax trees from incomplete or erroneous source code, as highlighted in the error resilience feature, making it robust for editor integrations and real-time feedback.
Continuously patches in-memory codebase structures in response to file changes, enabling fast updates even in large codebases, per the incremental compilation description.
Has no third-party dependencies beyond Rust standard library and macros, offering a lightweight and extendable foundation for compiler development, as stated in the self-sufficient API feature.
Compatible with wasm-targets, allowing deployment in browser environments for web-based language tools, which is explicitly mentioned in the key features.
The General License Agreement imposes commercial revenue caps and requires exclusive licensing for contributions, as detailed in the README, which can hinder open collaboration or large-scale commercial use.
Requires defining grammars using Rust macros and deep understanding of compiler concepts, making it less accessible for developers new to language engineering or those seeking quick results.
As a specialized framework for compiler front-ends, it has a smaller community and fewer third-party resources compared to established tools like ANTLR or Tree-sitter, potentially slowing down problem-solving.