GSET

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.conf maps aliases like say and shout to 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
1

What 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

TargetStatus
PythonImplemented
JavaScriptImplemented
GoImplemented
JavaImplemented
RubyImplemented
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 languageOne syntax to write, not a mental fork of five languages
⚙️ Portable logicLoops, branches, functions, arrays, and maps move between runtimes
🎓 Language learningSee the same program written the "Python way" and the "Go way" side by side
🔧 Honest limitsEach target page documents exactly what compiles and what does not

Ready to write your first program? Start with the Quick Start.

On this page