OxigenLang is a programming language made by Javan Hutchinson.
It's a general-purpose language with a readable, intent-first syntax, running on a bytecode VM written in Rust with a Cranelift JIT. It's open source, and it has documentation, a standard library, real tooling and a playground in the browser.
What is OxigenLang?
OxigenLang, or just Oxigen, is a general-purpose programming language. Source files use the .oxi extension and run with the oxigen command. The language is dynamically typed by default and lets you opt into type annotations that lock a value's type and mutability, which the virtual machine enforces.
You get first-class functions and closures, structs with methods and inheritance, Rust-style enums, named patterns you match with choose, errors you can treat as values, string interpolation, and your pick of braces or indentation for blocks. The standard library has 24 modules: text, collections, JSON and TOML, regular expressions, files and processes, HTTP clients and servers, TCP and UDP, time, hashing and encoding.
Who created OxigenLang?
OxigenLang was created by Javan Hutchinson, who designed the language and develops its implementation: the lexer and parser, the bytecode compiler and virtual machine, the Cranelift-backed JIT, the standard library, the formatter and test runner, and the language server and editor support. The project is developed in the open on GitHub.
Design principles
Oxigen is built around one idea: code should say plainly what it's for. So the language drops constructs that overlap and keeps one clear tool for each job.
- Read like intent.
optionfor a decision,unlessandwhenfor the clearer condition, named arguments at the call site, interpolation over concatenation. - Be explicit about types. A declared type is locked, turning whole classes of bugs into errors and documenting what a value is.
- Returns are implicit. The last expression is the result;
giveis the escape hatch. - One tool per job.
optionfor local decisions,patternwithchoosefor reusable matching,eachfor collections,repeatfor conditions. - Failure is a first-class value. Errors propagate by default, and
<Error>,<Value>and<guard>make them explicit where it matters.
The conventions guide goes through all of them.
How it works
Oxigen is implemented in Rust. A program goes through a hand-written lexer and parser into an abstract syntax tree, is compiled to bytecode, and runs on a stack-based virtual machine. Functions that get hot are compiled by a baseline JIT, built on the Cranelift code generator, to native machine code; the JIT is on by default and falls back to the interpreter cleanly whenever it needs to.
Parallel work runs on real OS threads, with a separate VM and heap for each task, so values cross threads by transfer rather than by sharing. The same VM can be embedded in a Rust program, such as a game engine, with capability sandboxing and loop budgets for running untrusted scripts. For the playground, the interpreter is compiled to WebAssembly and runs in your browser.
Project facts
| Name | OxigenLang (Oxigen) |
|---|---|
| Creator | Javan Hutchinson |
| Current version | 0.2.2 |
| Implementation | Rust: bytecode VM with a Cranelift baseline JIT; language server in Go |
| Typing | Dynamic, with optional enforced type annotations |
| File extension | .oxi |
| Platforms | Linux, macOS, and WebAssembly in the browser |
| License | MIT or Apache-2.0 |
| Source | https://github.com/javanhut/OxigenLang |
| Website | oxigenlang.org (also oxigenlang.com) |
Frequently asked questions
Who created OxigenLang?
OxigenLang was created by Javan Hutchinson, who designed the language and develops its compiler, bytecode virtual machine, Cranelift JIT, standard library and tooling.
What is OxigenLang written in?
Rust. Source code compiles to bytecode for a virtual machine, and a baseline JIT built on Cranelift compiles hot functions to native machine code. The language server is written in Go.
How fast is it?
On the project's benchmark suite the default build is a median 18× faster than CPython 3.14.6, and faster on 10 of 10 benchmarks. The benchmarks page has every number, including the slower interpreter-only build.
Is OxigenLang free and open source?
Yes, under the MIT or Apache-2.0 license, at your choice. The source is on GitHub.
Can I try it without installing anything?
Yes. The playground runs the real interpreter in your browser through WebAssembly.
Can I embed Oxigen in my own application?
Yes. A Rust program can compile and run Oxigen scripts, call their functions, expose native functions and host values, and restrict what scripts may touch. See Embedding Oxigen.
Which editors support Oxigen?
Oxigen ships a language server with diagnostics, completion, hover, document symbols and formatting, and a ready-made Neovim setup. Any editor with LSP support can use it.