Siyo 0.3.1 is out

Concurrency on the JVM.By Design.

Safe and simple by default. Siyo is a compiled language with actors, channels, and native Java interop. Familiar enough to start today. Different enough to enjoy it.

Bundled runtime · No Java installation required
store.siyoSIYO
actor Store { data: map } impl Store {fn new() -> Store {Store { data: map() }} fn set(self, key: string,value: string) -> string {self.data.set(key, value)"OK"}} mut store = spawn Store.new()println(store.set("lang", "siyo"))
siyoc run store.siyoOK
Direct bytecode
JJava 21+
19K+lines of compiler
1,475automated tests
37built-in functions
2execution backends
Why Siyo

Small language.
Serious machinery.

Designed around the way software is built now: concurrent by default, connected to an enormous ecosystem, and pleasant to read six months later.

01
Actor native

Concurrency that reads like your intent.

Actors, channels, and structured scopes are part of the language—not a library bolted on later.

02
JVM powered

Bytecode, directly. No translation layer.

Siyo emits standard JVM bytecode and runs beside Java and Kotlin with access to the full ecosystem.

03
Built to express

Modern ideas, without ceremony.

Closures, pattern matching, structs, interpolation, and typed functions in one compact syntax.

The language

Readable on Monday.
Powerful on Friday.

Siyo keeps the syntax compact while giving you real tools for real systems. Build APIs, model data, coordinate work, or call Java when you need to.

Pattern matching
Structs & enums
Closures
Actors
Channels
Java interop
Scounter.siyo
actor Counter { value: int }

impl Counter {
    fn increment(self) -> int {
        self.value += 1
        self.value
    }
}

mut counter = spawn Counter { value: 0 }
println(toString(counter.increment()))
siyoc run counter.siyo
Under the hood

One frontend.
Two ways to run.

The compiler and interpreter share the same analysis pipeline, so compiled programs and debug runs keep identical semantics.

01LexerTokens
02ParserSyntax tree
03BinderTypes & names
04LowererControl flow
EmitterJVM bytecode
EvaluatorInterpreter
ASM backend emits standard .class files
Virtual threads power lightweight concurrency
Parity tests compare both execution paths
Start building

From zero to running
in one command.

Install Siyo with its bundled runtime, then create your first project.

curl -fsSL siyolang.org/install | sh
01siyoc new my-app02cd my-app03siyoc run
Windows and source installation
One language, wide reach

Build past the demo.

Siyo already ships with the pieces to explore real applications.

Actor system

SiyoDB

An actor-based TCP key-value database built as a multi-file Siyo project.

Networking

REST + SQLite

Java sockets and JDBC, called natively.

29 examples

Learn by running

Algorithms, parsers, games, I/O, and more.

Experimental by nature

Make something
unexpected.

Siyo is young, public, and ready for curious builders.