EnvoL is a programming language, and EnvoScale is everything around it in one place: the
compiler, the standard library and the envo tool. Command-line programs, servers, apps,
websites, graphics and AI, with no third-party code anywhere.
EnvIDE drawing itself: the sidebar, tabs, editor and status bar are EnvoUI, the pixels and fonts are EnvoR
use alloc.text;
interface IShape {
i64 Area(in this);
str Name(in this);
}
struct Square : IShape {
i64 Side;
public i64 Area(in this) => this.Side * this.Side;
public str Name(in this) => "square";
}
// One copy of Describe per type it is called with: no virtual calls.
void Describe<T>(in T shape) where T : IShape {
string line = string.From(shape.Name());
line.Append(": ");
line.Append(text.Int(shape.Area()).AsStr());
print(line.AsStr());
}
Describe(new Square { Side = 4 });$ envo run .
square: 16
Every example runs in CI, as a script and natively, against the output its README shows.
Every image here was made by EnvoScale itself: screenshots of its website, or pixels rendered by its own libraries.
3D with envor.render3d: physically based shading on the CPU, the same pixels on every platform
Native UI with EnvoUI and envor.theme, light and dark, both WCAG AA
The same card in a terminal · 2D with envor.gfx and envor.font
The website is an EnvoL program · The sandbox runs the compiler itself in your browser
| Documentation | Getting started, a tour of the language, and guides for every project |
| EnvoL | The language: its compiler, standard library and the envo tool (build, run, test, format, debug, profile, packages) |
| EnvoR | Rendering: 2D, TrueType fonts, 3D with glTF, and the themes |
| EnvoUI | The UI framework: one component tree for windows, browsers and terminals |
| EnvIDE | The IDE, built on EnvoUI |
| EnvoWeb | Websites in EnvoL, and this project's site |
| EnvoScaleAsm | The compiler built up from a few kilobytes of readable assembly |
| EnvOS | Planned: a small operating system written in EnvoL |
A seed of readable hex builds an assembler, which builds a compiler written in assembly. Each later compiler is written in more of EnvoL and built by the one before it, until the compiler builds itself. That chain lives in EnvoScaleAsm, whose CI publishes the seed compiler EnvoLang starts from, only when Linux and Windows built the same bytes.
| Language | ownership without a garbage collector, generics, interfaces, closures, enums with match, checked arithmetic |
| Toolchain | one envo binary: new, run, build, test, check, fmt, debugger, profiler, fuzzer, REPL, language server, signed packages |
| Platform | files and processes, HTTP and TLS, JSON, websites, native and terminal UI, 2D, fonts, 3D with glTF, local AI models, crypto |
| Trust | W^X and ASLR, fuzzed parsers, sandboxed scripts, reproducible and signed releases with SBOMs |
In the works: making EnvoL's generated code as fast as Rust's, measured by timing the same compiler written in both, and EnvOS.
Apache-2.0: free for any use, including commercial. The documentation is CC BY 4.0, and the names and logo follow the trademark policy.