A programming language that compiles to small native programs for Windows, Linux, macOS
and the browser. One tool, envo, builds, runs, tests, formats and packages it. The
compiler, the standard library and the tool are written in EnvoL, with no third-party code.
enum Shape {
Circle(i64 radius),
Rect(i64 width, i64 height),
}
i64 Area(in Shape s) => match s {
Circle(r) => 3 * r * r,
Rect(w, h) => w * h,
};
List<Shape> shapes = List<Shape>.New();
shapes.Push(Shape.Circle(2));
shapes.Push(Shape.Rect(3, 4));
i64 total = 0;
foreach (var s in shapes.AsSlice()) total += Area(s);Download a release, or build from source with only Git and a shell:
git clone https://github.com/envoscale/EnvoLang
cd EnvoLang
./build.sh build # or .\build.ps1 build in PowerShell
build/envo/envo examples/00-hello/main.envolThe documentation for EnvoL and every project around it is in
EnvoScale:
getting started,
a tour of the language,
and the envo commands.
Here: examples/ and the specification.
compiler/ |
envoc, the compiler |
lib/ |
The standard library: core, alloc, std, and envo.* (crypto, TLS, HTTP, JSON, AI) |
tools/envo/ |
envo |
runtime/ |
The VM behind envo run |
adapters/ |
Everything that talks to an operating system, and the editor extension |
spec/ |
The specification, read by envo explain and shipped with every release |
examples/ |
Small programs, each run in CI against its output |
tests/ |
The test suites; ./build.sh test runs them all |
The compiler compiles itself. The first compiler comes from EnvoScaleAsm, which builds it from assembly.
Apache-2.0: see LICENSE and NOTICE. Free for any use, including commercial. The names and the logo are covered by the trademark policy.