The Genesis of Voyage
Voyage takes its name from the Voyager 1 and 2 probes, and from the manned spacecraft of science fiction — built to travel far and keep working. The project, developed under voyage-org, starts from a single thesis: a language that targets the CLR directly, with no bridging layer, keeps interop simple and performance predictable.
Swift-Inspired Syntax
Voyage keeps the parts of Swift's syntax that read clearly: func, struct, enum, protocol, extension, and \(...) string interpolation. Single-expression function bodies get an implicit return.
struct Coordinate {
let x: Double
let y: Double
func distance(to other: Coordinate) -> Double
sqrt((x - other.x) * (x - other.x) + (y - other.y) * (y - other.y))
}Reentrant Actors & Atomic Blocks
Actors are fully reentrant, backed by lock-free Channel<T> mailbox loops running on the CLR ThreadPool. atomic{'{}'} blocks give you zero-runtime-cost concurrency safety, checked entirely at compile time — no await is allowed inside one, and the compiler performs transitive-await detection across the whole compilation unit.