A general-purpose language with strict static typing, mandatory testing, and dependency-aware integrity. If it compiles, it has tests. If it has tests, they pass. If you change it, you'll know what broke.
Try Ori right in your browser. Write code, click Run, see results instantly.
Every function requires tests or it doesn't compile. Contracts enforce invariants. The compiler refuses to produce code it can't verify.
Tests live in the dependency graph. Change a function and its tests run. Change a function and callers' tests run too. Fast feedback on what matters.
Capabilities declare what a function can do. No hidden side effects. Mocking is trivial. Tests are fast because everything is injectable.
Memory managed via ARC. No tracing GC, no borrow checker. Closures capture by value. No shared mutable references. Value semantics by default.
Each design decision reinforces the next, creating a system where verification is practical, not painful.
curl -fsSL https://ori-lang.com/install.sh | sh // hello.ori
@main () -> void = print(msg: "Hello, World!") ori run hello.ori