One Runtime. No FFI.

|

Charting New Frontiers in Language Design

A modern systems and application language built directly on the CLR. Swift-inspired syntax, reentrant actors, and compile-time safe concurrency — with C# interop by construction.

Built on the CLR

Voyage doesn't reinvent the runtime — it embraces it. Swift-inspired syntax compiles directly against CLR assembly metadata, giving you reentrant actors, safe concurrency, and bidirectional C# interop by construction.

Reentrant Actors

Fully reentrant actors backed by lock-free Channel<T> mailbox loops running on the CLR ThreadPool — no hand-rolled schedulers required.

Compile-Time Safe Concurrency

atomic{'{}'} blocks enforce zero-runtime-cost safety rules at compile time, with transitive-await detection across the whole compilation unit.

Native C# Interop

Modules resolve directly against CLR assembly metadata, so Voyage and C# code call each other without wrappers, bindings, or a foreign function interface.

voyage
actor TelemetryHub {
  var readings: [Double] = []

  func record(_ value: Double) {
    readings.append(value)
  }

  func average() -> Double {
    atomic {
      readings.reduce(0, +) / Double(readings.count)
    }
  }
}

struct Probe {
  let name: String
  \(name) is reporting in
}

Single Runtime, No FFI

Voyage is designed spec-first, taking lessons learned from Nova AI Lang: one runtime, one memory model, no bridging layer between languages.

Value & Reference Semantics

struct maps to a CLR value type; class and actor map to CLR reference types under a tracing GC, not ARC.

Typed & Untyped Throws

Choose precise, typed error propagation where it helps, or fall back to untyped throws for flexibility — both are first-class in the type system.

Spec-First Development

Every design decision is recorded as an ADR before a line of compiler code is written — ten ADRs, a full grammar, type system, and memory model, up front.

Ready to chart the course?

Follow the spec, track the parser's progress, and see where Voyage is headed next.