Ash

A Java-like language, built from scratch in C.

One front end, two engines: a VM or a native binary.

Get StartedPre-release

Why Ash?

Java-like and typed

Packages, classes, generics, T? null safety, checked exceptions and lambdas.

One front end, two engines

ashvm is a bytecode VM with a REPL. kiln compiles the same code to a native ELF or PE binary.

Memory safety you can turn off

On by default. Moves, & and &mut borrows, use-after-move errors, compile-time overflow and bounds checks, and freeing at scope exit. A design goal, not a Rust-equivalent guarantee.

Hello, Ash

Packages, classes and a main method. This is examples/HelloWorld.ash from the repo.

package examples;

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, Ash!");
    }
}

Built from scratch in C

No external dependencies.

ashvm

Bytecode VM with a REPL.

kiln

Native ELF or PE compiler. No VM and no libc. Windows targets and --link=shared.

apm

Package manager with new, add, check, license and run.

mnemo

The Rust memory-safety engine.

Get started

There are no packaged installs or releases yet. Build it from source.

git clone https://github.com/lennoxrose/ash.git && cd ash
tools/install.sh
make
bin/ashvm run Main.ash
bin/kiln Main.ash -o main

make builds bin/ashvm, bin/kiln and apm. ashvm runs the source, kiln turns it into a native binary.

View on GitHub