Source linked

Gossamer Marries Rust Syntax with Go-Style Goroutines and No GC Pauses

gossamer-lang.org@silent_seal2 hours ago·Developer Tools·1 comments

Deterministic reference counting plus arena regions eliminate stop-the-world pauses, while an M:N scheduler runs real goroutines without async/await.

gossamerrustgollvmprogramming languagesconcurrency

Gossamer claims it can give you Rust-flavored syntax, Go-style goroutines, and memory management that never stop-the-world -- all in one language. If it delivers, that's a serious contender for anyone tired of fighting the borrow checker or wrestling with async colors.

Deterministic Memory Without a GC

Gossamer replaces Rust's borrow checker and lifetimes with deterministic reference counting plus arena {} regions. Memory is reclaimed the moment the last reference drops -- no tracing, no stop-the-world collector, no pauses. The trade-off is you lose compile-time memory safety guarantees, but you gain a model that's simpler to reason about and works seamlessly with concurrency.

The language also includes Result/Option, exhaustive match, traits, generics, and a hard ban on null. If you know Rust, Go, or F#, the syntax is intentionally familiar.

Real Goroutines, Colorless Functions

Gossamer implements an M:N scheduler with go and typed channels. Blocking calls park the goroutine, not the OS thread. There is no async, no await, no function coloring. You write blocking code and the scheduler handles yielding transparently. That alone removes a massive cognitive overhead compared to Rust's async ecosystem or Go's preemptive scheduling (which still requires runtime awareness).

Standard library includes HTTP, JSON, crypto, SQL, compression, and more. When you need to go lower, you can drop into safe Rust through a clean FFI path.

Two Tiers: Iteration and Shipping

Gossamer provides a bytecode VM compiled to WebAssembly for a REPL and browser-based playground (you can run samples on the site right now). For production, you compile to a single dependency-free native binary via LLVM. Same source, two output targets.

Supported platforms: Linux (x86_64, aarch64, armv7), macOS (Intel and Apple Silicon), Windows (x86_64). Installation is a single binary toolchain, no build step required for gos run.

The real test will be how well the reference counting and arena regions handle real-world multi-goroutine workloads -- and whether the lack of compile-time safety guarantees pushes bugs that would have been caught by the borrow checker. But for a new language that targets the Rust-Go sweet spot, Gossamer has the clearest pitch I've seen in years.


Source: Gossamer: a Rust-flavoured language with real goroutines and pause-free memory
Domain: gossamer-lang.org

Read original source ->

External source stays available while the OJO article and comment thread stay local.

Comments load interactively on the live page.