Skip to main content

It's not
rocket science. Is it?

Started as a joke to learn the inner mechanics of a interpreted language, RocketLang quickly evolved into a long running project with more and more ambitious goals, such as being used forΒ Advent of Code to test it's limits.

πŸš€ > puts("hello from rocket-lang!")
"hello from rocket-lang!"
=> nil

πŸš€ > langs = ["ruby", "go", "crystal", "python", "php"]
=> ["ruby", "go", "crystal", "python", "php"]

πŸš€ > langs.yeet()
=> "php"

πŸš€ > langs.yoink("rocket-lang")
=> nil

πŸš€ > langs
=> ["ruby", "go", "crystal", "python", "rocket-lang"]

Get started quickly

$ brew install flipez/homebrew-tap/rocket-lang

You can also install RocketLang via APT, RPM, as a binary or from source. See Β the install guideΒ  for more detailed information.

πŸš€ > JSON.parse('{"test": 123}')
=> {"test": 123.0}


πŸš€ > a = {"test": 1234}
=> {"test": 1234}


πŸš€ > a.to_json()
=> '{"test":1234}'

Strong and stable builtins

RocketLang ships some neat builtins such as handling HTTP requests and responses, marshalling and unmashalling of JSON objects.

It also comes with support of closures, modules and context sensitive variables in order to create complex programs.

Everything is an object

Inspired by Ruby, in RocketLang everything is an object.

This allows to treat unknown input in the same way and figuring out what kind of information your function passes on the go. Every object supports the same minimum default subset of methods to achive this.

πŸš€ > "test".type()
=> "STRING"

πŸš€ > true.wat()
=> BOOLEAN supports the following methods:
plz_s()

πŸš€ > 1.methods()
=> ["plz_s", "plz_i", "plz_f"]