The Aument Language

The Aument Language is a work-in-progress, dynamically-typed scripting language that is performant, simple and easy to use. It can be interpreted like Python or compiled into native C code.

Binary distributions available for Linux and Windows.

Latest release » Tour of Aument Source code

struct Human { name }

func human(name) {
  return new Human {
    name: name
  };
}

func (self: Human) say() {
  print "I'm ", @name, "\n";
}

struct Cat;

func (self: Cat) say() {
  print "meow!";
}

let alice = human("Alice");
let bob = human("Bob");
let cat = new Cat;

alice.say();
bob.say();
cat.say();                  

aument is...

Fast

Aument's interpreter is written in C. It features a single-pass parser, compact bytecode and uses cache-friendly data structures to represent objects.

Aument can also be compiled into C. Through the power of a C compiler, Aument programs can get an enormous speed boost when compiled.

Simple and functional

Unlike many other scripting languages, Aument only has flat, compound data structures with first-class functions.

Aument includes language features such as dynamic dispatch and function values, helping users build functional, efficient software.

Embeddable

Aument's runtime is embeddable. It doesn't need any libraries other than the standard C library to be built. It also uses reference counting, making it easy for cross-language memory management.

Aument's standard library is also modular: Users can build Aument without many of its optional libraries.

🚧 A work in progress 🚧

Aument is the work of one person and is in active development, things may break at any time and many features are planned or in development:

Aument is in alpha with a new release every week.

developing with aument

Leet coding

Libraries

With a total of 1 developer, Aument boasts a vibrant ecosystem with libraries in active development:

  • The Standard Library – the core of the Aument language
  • Tasks – asynchronous programming for Aument with libuv
  • Random – the first library written in Aument for generating random numbers
  • and more to come!
C logo

C/C++ integration

Aument is written in C, writing a library for Aument is as simple as writing a shared library that communicates through the C ABI. Here's a tutorial on how to do it.

Libraries can use Aument's C API to expose their functions as modules. Aument can import these libraries as .dll or .so files.

C++ bindings are currently in the works.

Book

Read the Manuals

If you have any questions at all, feel free to post it in the issues page.