GSET
One source. Every runtime. Write once in GSET, transpile to Python, JavaScript, Go, Java, or Ruby.
One source. Every runtime.
GSET (Generic Syntax Extension Tool) is a single-binary Go transpiler. Write a program once in GSET's clean, braces-and-print syntax, and run it with Python, JavaScript, Go, Java, or Ruby.
- Five working backends — go, python, javascript, java, ruby — each generating a complete runnable file.
- Configurable keywords:
gset.confmaps aliases likesayandshoutto each target's real print function. - The parser always terminates —
match/case,try/catch, and list comprehensions no longer hang. - Single static Go binary, zero dependencies (besides the target runtime you want to execute).
The 30-second example
Write hello.gset:
var name = "World"
var count = 3
print("Hello, " + name)
while count > 0 {
print(count)
count = count - 1
}Now run it on three different runtimes. Same file, no changes:
$ gset run hello.gset --target python
Hello, World
3
2
1
$ gset run hello.gset --target javascript
Hello, World
3
2
1
$ gset run hello.gset --target go
Hello, World
3
2
1What GSET generates (streamlined)
# --target python // --target javascript // --target go
name = "World" let name = "World" package main
count = 3 let count = 3 import "fmt"
print("Hello, " + name) console.log("Hello, " + name)
while count > 0: while (count > 0) { func main() {
print(count) console.log(count) fmt.Println("Hello, " + name)
count = count - 1 count = count - 1 for count > 0 {
} fmt.Println(count)
count = count - 1
}
}Target status
| Target | Status |
|---|---|
| Python | Implemented |
| JavaScript | Implemented |
| Go | Implemented |
| Java | Implemented |
| Ruby | Implemented |
| C, C++, C#, Rust, PHP, Swift, Kotlin... | Planned |
An Implemented / Planned legend explains what each badge means. The Go and Java emitters have real limitations around typing and classes — see Limitations.
Why GSET?
| Benefit | |
|---|---|
| 💻 A small, learnable language | One syntax to write, not a mental fork of five languages |
| ⚙️ Portable logic | Loops, branches, functions, arrays, and maps move between runtimes |
| 🎓 Language learning | See the same program written the "Python way" and the "Go way" side by side |
| 🔧 Honest limits | Each target page documents exactly what compiles and what does not |
Ready to write your first program? Start with the Quick Start.