Pythonic Syntax
Indentation-based, readable, and concise syntax that avoids extensive boilerplate.
Looks like Python. Runs like Rust. Quacks like Ryduck. Ryo /ˈraɪoʊ/ is a statically-typed language designed for high Developer Experience — the ergonomics of Python, the memory safety of Rust ("Ownership Lite"), and the concurrency model of Go.
# Errors as values · optionals · safe by default
error NotFound
fn find_user(id: int) -> NotFound!str:
if id == 0:
return NotFound
return f"user_{id}"
fn main():
# Immutable by default — no `let` keyword
greeting = "Welcome to Ryo"
# Optionals — no null pointer exceptions
maybe: ?str = "Alice"
name = maybe orelse "guest"
# Explicit, type-safe error handling
user = find_user(42) catch |err|:
match err:
NotFound: "unknown"
print(f"{greeting}, {name} → {user}")
Built with ideas from the best
Most code is going to be written by AI. Ryo is built for that workflow: the AI writes, the compiler enforces, the human reviews. Static types catch hallucinated APIs. Exhaustive matches reject incomplete code. Ownership without lifetime annotations means the AI doesn't have to reason about regions. Contracts (planned for v0.2) will read as executable specifications of intent.
Indentation-based, readable, and concise syntax that avoids extensive boilerplate.
Memory safety without the garbage collector — and without lifetime annotations. Functions borrow by default, assignments move, and the compiler enforces the rules.
Zig-style Error Unions (!T) with exhaustive pattern matching by default and clear propagation.
Colorless concurrency with a work-stealing scheduler. No async/await function coloring.
Say hi to Ryduck, our mascot.
Join the early community of developers and language enthusiasts building the software of tomorrow.
Read Documentation