Skip to content

BigBadE/Raven-Language

Repository files navigation

Raven

codecov DeepSource CodeScene Code Health

Raven is a modern low-level language prioritizing safety without sacrificing speed or usability.

For some examples of the language, look at the integrated tests in lib/test/test

Features

Fully Async Compilation

The Raven compiler is fully async, though it has not been heavily optimized yet (I have some concerns about job switching and over-zealous locking).

Traits

Rust-like traits allow for easy code re-use

Polymorphism

Polymorphic functions and structs go hand-in-hand with traits to make code re-use extremely intuitive to programmers

User-defined operators

Custom operators can be defined on specific types, making it easier to work with non-builtin types

Simple Errors

Raven tries to be a simpler language than Rust, ditching the lifetimes and allowing escaping from the borrow checker in a safe way

Language Server

Currently, Raven's Language Server only supports syntax highlighting, but more features are planned

Planned Features

Installing

For help on installing Raven, look at the first chapter of the in-progress Raven book

Building

To build Raven from scratch, read the building.md file

Contributing

Please read the contributing guidelines before contributing.

Documentation

For the documentation on the Raven language, look at the Raven book in the raven folder

For crate-level, file-level, and function-level documentation over the Raven internals, look at the source itself in the language folder. You can also find a helpful document going over internals in language/README.md