Basics
Guides
API Reference
Basics
Guides
API Reference
A module is just an .aus file that you want to use from another
.aus file. Pull one in with the include keyword.
include sys;
include math;
Include the module name, not the filename. The runtime adds the
.aus extension itself. Include statements normally go at the top
of the file, before any class definition.
For a module name with a dot in it, the dot represents a directory separator:
include playwright.playwright; // playwright/playwright.aus
include lib.helpers.formatters; // lib/helpers/formatters.aus
When you write include myModule;, the runtime searches in this
order:
sys, math, lang, reflect, aunit, and the rest of the
built-in modules come from.apps/myapp.aus, then apps/ is searched.lib.formatters resolves to lib/formatters.aus relative to the
running script.In a server or CLI setup, the host application sometimes adds extra search paths. Aussom Server, for example, makes the app's directory available so each app's helper modules are reachable.
Includes do not have to be at the top of the file. You can also
write an include statement inside a function, in which case the
module is parsed and made available at the moment the function
runs.
include sys;
class App {
public main(args) {
c.log("starting up...");
this.runJob();
}
public runJob() {
// pulled in only when runJob() is called
include myJobModule;
// ...
}
}
This is useful when:
For everyday code, prefer top-of-file includes. They make dependencies obvious to a reader.
The lang module is included automatically. That is where built-in
classes like c (console), json, Bool, Int, Double, and the
methods on string, list, and map live. You can use c.log
without an include.
include machinery interacts with Java-backed modules.
Aussom
Write once. Embed everywhere.
Copyright 2026 Austin Lehman. All rights reserved.