#golang #compiler #go

bin+lib soppo

Compiler for Soppo, a Go superset with enums, pattern matching, and nil safety

15 releases (9 breaking)

Uses new Rust 2024

0.10.1 Jan 28, 2026
0.10.0 Dec 27, 2025
0.9.0 Dec 22, 2025
0.4.0 Nov 30, 2025

#127 in Programming languages


Used in 2 crates

BSD-3-Clause

1.5MB
29K SLoC

soppo

Soppo

A language that compiles to Go, adding ergonomic and type safety features that Go lacks. Soppo uses Go syntax wherever possible - if you know Go, you know most of Soppo.

Take the tour · Visit the playground · See the website

Why Soppo?

  • Enums & pattern matching: Tagged unions with exhaustive matching
  • Nil safety: Compile-time nil checks
  • Error handling: ? propagation with custom handling blocks
  • Rust-inspired diagnostics: Helpful compiler error messages
  • Go interop: Use any Go library directly
  • Batteries included: LSP, formatter, linter, test runner with doctests

See docs/guide.md for the language guide.

Installation

Install via SOPMOD, the version manager for Soppo, written in Soppo:

curl -fsSL https://soppolang.dev/install.sh | sh
sopmod install sop latest

Or install manually with Cargo: cargo install soppo

License

BSD 3-Clause. See LICENSE.

Dependencies

~14–22MB
~470K SLoC