User guide
Concepts, first steps, and reference for using the project.
Getting started
- Installing OriHow to install Ori, check the install with ori doctor, and upgrade to a new release.
- First project and local packagesHow to create a project, declare local packages, and compile a first program.
- Ori language tour (S3)A walk through the S3 surface: modules, functions, types, result, match, pipe, and traits.
Language
- Advanced language featuresSlices, contracts, const generics, declaration attributes, SIMD, memory arenas, and destructors.
- Async and concurrencyasync and await, tasks, channels, atomics, and cancellation tokens.
- Interoperability and the C ABIHow to call C with extern and publish Ori functions to C with @c_export.
Manual
- Cookbook — small and medium projectsRecipes for small and medium projects, in valid S3 code.
- Debugging Ori programsThe terminal debugger, the DAP server, and editor integration.
- Errors, optional, void — mental modelThe mental model of absence and failure: optional, result, try, and void.
- Performance microbench (polyglot)A microbenchmark comparing Ori, Python, and Rust, with the method used.
- Testing Ori (user + contributor)How to test Ori programs with @test and ori test, and how to test the compiler.