Solod (So) is a strict subset of Go that translates to regular C.
Highlights:
So supports structs, methods, interfaces, slices, maps, multiple returns, and defer. Everything is stack-allocated by default; heap is opt-in through the standard library. To keep things simple, there are no channels, goroutines, closures, or generics.
So is for Go developers who want systems-level control without learning a new language. And for C programmers who like Go's safety, structure, and tooling.
Here's some Go code in a file main.go.
Click Run to execute it, or Translate to see the
generated C code (main.h + main.c).
package main
import "solod.dev/so/time"
type Person struct {
Name string
Age int
Nums [3]int
}
func (p *Person) Sleep() int {
p.Age += 1
return p.Age
}
func main() {
p := Person{Name: "Alice", Age: 30}
p.Sleep()
println(p.Name, "is now", p.Age, "years old.")
p.Nums[0] = 42
println("1st lucky number is", p.Nums[0])
year := time.Now().Year()
println("The year is", year)
}
Even though So isn't ready for production yet, I encourage you to try it out on a hobby project or just keep an eye on it if you like the concept.
Installation and usage • Language tour • Standard library • So by example • Benchmarks • Source code
As of May 2026, So is in active development. Currently working on the v0.2 release:
If you have any questions, feel free to reach out on GitHub.
🧑💻 Anton Zhiyanov