Passerine

A small extensible programming language designed for concise expression with little code.

Download Passerine 0.9.2

Why Use Passerine?

Light and Fast

Passerine’s entire implementation, from lexer to VM, is only ~2900 lines of code, and has zero dependencies. Clever memory management techniques and an efficient interpreter means the runtime is even smaller. Passerine’s package manager, Aspen, helps manage everything for you, so development’s a breeze.

The implementation ↗

Highly Expressive

A rich hygenic macro system and runtime introspection allows for a wide breadth of programmatic expression. Bend the language to your needs rather than bending your needs to the language.

Syntactic Macros ↗

Easily Embeddable

Passerine’s VM is written in Rust. A well-designed FFI allows each language to communicate with each other, allowing for rich usage of each language’s libraries. Passerine’s memory management technique, vaporization, also plays friendly with Rust’s borrow checker, allowing for easy integration.

Integrating Passerine ↗

Get Involved!

Install

If you're wondering what Passerine is all about, here's a brief overview of the language and it's (planned) features

An Overview of Passerine ↗

Downloading Passerine is quick and easy. Just run the following in the shell of your choice:

sh <(curl -sSf https://www.passerine.io/install.sh)

This script just pulls the latest version of Passerine, builds it from source, and adds it to your $PATH. Give it a read before running it if you'd like!

In the future, we plan to distribute prebuilt binaries, but for now, both Git and Cargo are required.

To create and run a new Passerine project, again, in your favorite shell:

aspen new hello-passerine
cd hello-passerine
aspen run

Learn

Passerine has a bunch of great resources for getting started, and the Passerine community values witty, insightful, and helpful documentation. Check out some of the following resources to get started:

Join the community Discord server ↗
Read the compiler documentation ↗
Read the Overview ↗

Contribute

Passerine, as a language, can’t grow without your help. As we’re currently in an early stage of development, any and all feedback and contributions count. Passerine’s compiler values simplicity above all else, so it’s easy to start hacking on it — all you need are some basic Git, Rust, and Passerine skills, and you’re set.

Passerine on Github ↗
Aspen on Github ↗
Contribution Guidelines ↗

'Tis not the end, 'tis but the beginning...

Install Passerine

Disclaimer

Passerine is at an early stage of development. Although a lot's been done, there's still a lot to do. If you'd like to know about the current state of development, ping Isaac Clayton (@slightknack#4221) on the community Discord server.

Other Stuff

Code of Conduct

Security

Legal

Improve this page