A hands-on introduction to Solod (So) — a subset of Go that translates to C.
This repo contains small examples that show individual language and stdlib features, as well as larger apps that demonstrate how everything fits together.
Hello world • Values • Variables • Constants • For • If/else • Switch • Arrays • Slices • Maps • Functions • Multiple returns • Variadic functions • For-range • Pointers • Strings and runes • Structs • Methods • Interfaces • Enums • Errors • Panic • Defer
Memory • C interop • Slices • Maps • Strings • Time • Unix time • Time format • Random numbers • Number parsing • Sorting • Custom sort • Reading files • Writing files • Scanning • File paths • Directories • Temp files • Command line • Env variables • Logging • Exit
Coreutils: cat, cut, head, sort, uniq, wc
Count word frequencies by serge-hulne
DuckDB shell by Lorenzo Mangani
FreeSWITCH module by seven1240
Key-value store with SQLite interop
TCP echo server and client.
To run a specific example locally, use the so run command. For example:
so run lang/05-for
so run apps/head -n 4 data/jenny.txt
You'll need to have a C compiler installed and available as cc, or you can set a custom compiler by using the CC environment variable.
To see the generated C code, use the so translate command. For example:
so translate -o lang/05-for/generated lang/05-for
Partially based on Go by Example by Mark McGranaghan, licensed under CC BY 3.0.