OtterLang is an indentation-sensitive programming language with an LLVM backend that compiles to native machine code. It combines Python-like simplicity with Rust-like performance and seamless (not yet) interoperability with the Rust ecosystem.
Think of OtterLang as a modern language that bridges the gap between high-level expressiveness and low-level performance, with transparent access to the entire Rust ecosystem.
- 🎯 Simple syntax – Indentation-driven, no braces or semicolons
- ⚡ Native performance – Compiles to native binaries with LLVM
- 🔗 Transparent Rust FFI – Import any Rust crate with
use rust:crate_name(very barebones) - 🛡️ Memory safety – Generational garbage collection with explicit root APIs
- 🧵 Concurrency – Built-in threaded task runtime
- 📦 Rich standard library – Comprehensive stdlib covering IO, networking, JSON, and more
git clone https://github.com/jonathanmagambo/otterlang.git
cd otterlang
nix develop
cargo build --release
./target/release/otter run hello.otSee the Getting Started Guide for detailed instructions.
Roadmap – project roadmap and future plans.
Getting Started – installation, CLI walkthrough, first project.
Examples – curated sample programs.
Tutorials – guided walkthroughs for specific topics.
API Reference – stdlib module documentation.
Important
OtterLang is currently in Early Access (v0.1.0) and is being actively developed. If you plan to contribute, now is the time to provide a helping hand for the hardworking team.
OtterLang is free and open source, released under the BSD-3-Clause License. Contributions are welcome! See CONTRIBUTING.md for more information.