An open API service indexing awesome lists of open source software.

https://github.com/martian56/raven

Raven is a new systems and application programming language designed to combine the performance and control of C++, the safety and modern features of Rust, the readability of Python, the structure of Java, and the simplicity of Go.
https://github.com/martian56/raven

new-programming-language programming-language

Last synced: 14 days ago
JSON representation

Raven is a new systems and application programming language designed to combine the performance and control of C++, the safety and modern features of Rust, the readability of Python, the structure of Java, and the simplicity of Go.

Awesome Lists containing this project

README

          


Raven Logo


A modern programming language built with Rust.

Fast, safe, expressive, and easy to read.


CI Status
Latest Release
License
VS Code Extension


Documentation
·
Website
·
Releases
·
Issues

## Why Raven

- Compiled to native machine code through Cranelift, into a single static binary.
- Static typing with generics, traits, and sum types checked by an exhaustive `match`.
- A tracing garbage collector and `Result`/`Option` instead of `null`.
- Goroutines and channels that run in parallel across CPU cores (an M:N scheduler over a multi-threaded collector), with mutexes, wait groups, and `select`, and a C FFI for native libraries.
- A package manager (`rvpm`), one canonical formatter, and a VS Code extension.

## Quick Example

```rust
struct User {
name: String,
age: Int,
}

fun greet(user: User) -> String {
return "Hello ${user.name}, you are ${user.age}"
}

fun main() {
let u = User { name: "Raven", age: 2 }
print(greet(u))
}
```

## Install

Download the installer or archive for your platform from the [releases page](https://github.com/martian56/raven/releases):

- Linux: `.deb`, `.rpm`, or `.tar.gz`
- Windows: `.msi` or `.zip`

This installs the `raven` compiler and the `rvpm` package manager and adds them to your `PATH`. Compiling a program also needs a C linker on your machine (the MSVC build tools on Windows, `cc`/`clang` on Linux).

## Quick Start

```bash
# Compile a source file to a native binary
raven build hello.rv -o hello
./hello
```

Project workflow with `rvpm`:

```bash
rvpm init my_app
cd my_app
rvpm run # builds and runs src/main.rv
rvpm fmt # format the .rv sources
```

### Build from source

For contributors, or to track the latest commit:

```bash
git clone https://github.com/martian56/raven.git
cd raven
cargo build --release
```

The `raven` and `rvpm` binaries land in `target/release/`.

## Learn More

- Full docs: [https://martian56.github.io/raven/](https://martian56.github.io/raven/)
- Project website: [https://raven.ufazien.com/](https://raven.ufazien.com/)
- Getting started: [https://martian56.github.io/raven/v2/guide/getting-started/](https://martian56.github.io/raven/v2/guide/getting-started/)
- Language reference: [https://martian56.github.io/raven/v2/guide/language-reference/](https://martian56.github.io/raven/v2/guide/language-reference/)
- Standard library: [https://martian56.github.io/raven/v2/guide/standard-library/](https://martian56.github.io/raven/v2/guide/standard-library/)

## Technologies Used


Rust
TypeScript
GitHub Actions
Docker

## Star History





Star History Chart

## Repo Activity
![Raven Repo Activity](https://repobeats.axiom.co/api/embed/9d035f992470205e678447d3b03b50356374c34e.svg "Repobeats analytics image")

## Contributors


Contributors

## Community

- Contributing guide: [CONTRIBUTING.md](./CONTRIBUTING.md)
- Code of conduct: [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md)
- Security policy: [SECURITY.md](./SECURITY.md)

## License

MIT License. See [LICENSE](./LICENSE).

## GitAds Sponsored
[![Sponsored by GitAds](https://gitads.dev/v1/ad-serve?source=martian56/raven@github)](https://gitads.dev/v1/ad-track?source=martian56/raven@github)