Home

Awesome

<!------------------------------------------------------------------------------ This file is a part of the "Lady Deirdre" work, a compiler front-end foundation technology. This work is proprietary software with source-available code. To copy, use, distribute, and contribute to this work, you must agree to the terms of the General License Agreement: https://github.com/Eliah-Lakhin/lady-deirdre/blob/master/EULA.md. The agreement grants you a Commercial-Limited License that gives you the right to use my work in non-commercial and limited commercial products with a total gross revenue cap. To remove this commercial limit for one of your products, you must acquire an Unrestricted Commercial License. If you contribute to the source code, documentation, or related materials of this work, you must assign these changes to me. Contributions are governed by the "Derivative Work" section of the General License Agreement. Copying the work in parts is strictly forbidden, except as permitted under the terms of the General License Agreement. If you do not or cannot agree to the terms of this Agreement, do not use this work. This work is provided "as is" without any warranties, express or implied, except to the extent that such disclaimers are held to be legally invalid. Copyright (c) 2024 Ilya Lakhin (Илья Александрович Лахин). All rights reserved. ------------------------------------------------------------------------------->

Lady Deirdre

Crate API Docs User Guide Examples

<img align="right" height="220" style="float: right; margin-left: 10px; width: 220px" alt="Lady Deirdre Logo" src="https://raw.githubusercontent.com/Eliah-Lakhin/lady-deirdre/master/work/logo.jpg" />

Lady Deirdre is a framework for incremental programming language compilers, interpreters, and source code analyzers.

This framework helps you develop a hybrid program that acts as a language compiler or interpreter and as a language server for a code editor's language extension. It offers the necessary components to create an in-memory representation of language files, including the source code, their lexis and syntax, and the semantic model of the entire codebase. These components are specifically designed to keep the in-memory representation in sync with file changes as the codebase continuously evolves in real time.

Lady Deirdre is the perfect tool if you want to start a new programming language project.

Key Features

Performance

Lady Deirdre aims to provide development infrastructure with acceptable computational performance suitable for production use.

The crate's API demonstrates solid benchmark test results, comparing individual features of the framework with specialized solutions from the Rust ecosystem.

For detailed information, refer to the Benchmarks page.

Links

Copyright

This work is proprietary software with source-available code.

To copy, use, distribute, and contribute to this work, you must agree to the terms and conditions of the General License Agreement.

Copyright (c) 2024 Ilya Lakhin (Илья Александрович Лахин). All rights reserved.

Can I use your work in my open-source project?

Yes, you can use Lady Deirdre in your open-source projects. I would be happy to assist and hear your feedback to improve Lady Deirdre.

The agreement automatically grants you a license to develop non-commercial software based on Lady Deirdre.

May I contribute to your project?

If you find a bug or have a new feature suggestion, you can open a pull request in my GitHub repository.

Please be aware that my work is proprietary software, intended for solo development. For this reason, the agreement requires you to automatically assign me the changes you make to my project's source code.

However, if you want to create an extension for my crate, you can develop a separate crate that uses my crate's public APIs through Cargo. In this case, you don't have to assign me your work, and you can distribute your project under any permissive license, such as the MIT license.

I deliberately keep my crate's APIs extendable for third-party authors who want to create dedicated Lady Deirdre extensions.

Can I develop commercial software products?

Yes, you can develop commercial software based on Lady Deirdre.

The agreement grants you a Commercial-Limited License, allowing you to use my work in commercial products, both open-source and closed-source.

This license restricts the total gross revenue you can earn using software products based on Lady Deirdre. Once your product exceeds this limitation, you can purchase the annual Unrestricted Commercial License on my Patreon page, which removes these restrictions.

What happens when the Unrestricted Commercial License expires?

You should renew the license to continue using new versions and upgrades of Lady Deirdre.

If you do not renew the license, you can keep using the version you have at the time of expiration in your software product perpetually.