Skip to content
Oeiuwq Faith Blog OpenSource Porfolio

RockstarLang/rockstar

Home of the Rockstar programming language

RockstarLang/rockstar.json
{
"createdAt": "2018-07-21T16:10:34Z",
"defaultBranch": "main",
"description": "Home of the Rockstar programming language",
"fullName": "RockstarLang/rockstar",
"homepage": "https://codewithrockstar.com/",
"language": "JavaScript",
"name": "rockstar",
"pushedAt": "2025-09-17T18:50:31Z",
"stargazersCount": 6878,
"topics": [],
"updatedAt": "2025-11-20T14:40:34Z",
"url": "https://github.com/RockstarLang/rockstar"
}

This is Rockstar, an esoteric programming language whose syntax is inspired by the lyrics to 80s hard rock and heavy metal songs.

![Rockstar Logotype]!(rockstar-logo-strapline-sticker.png)

Rockstar has three main components:

  • /Starship contains the Starship interpreter for Rockstar, built in C# and .NET
  • /cm-lang-rockstar contains the CodeMirror editor used on the Rockstar website
  • /codewithrockstar.com contains the Rockstar website, docs and examples

To build the Starship engine, you’ll need the .NET 9 SDK

git clone https://github.com/RockstarLang/rockstar.git
cd rockstar
dotnet workload install wasm-tools
dotnet build ./Starship/Starship.sln
dotnet test ./Starship/

To build a Rockstar native binary on Linux, you’ll need gcc installed, and then:

git clone https://github.com/RockstarLang/rockstar.git
cd rockstar
dotnet publish ./Starship/Rockstar -o binaries -c Release

That’ll create a standalone binary executable in binaries/rockstar.

The codewithrockstar.com website is built with Jekyll and hosted on GitHub Pages.

The embedded Rockstar interpreter is the Starship engine compiled to run on web assembly:

dotnet build ./Starship/Starship.sln
dotnet publish ./Starship/Rockstar.Wasm -o codewithrockstar.com/wasm/ -c Debug

Building codewithrockstar.com works like this:

build-rockstar-2.0

  • runs on Linux
  • Builds the parser and interpreter
  • Runs the test suite
  • Uploads artifacts for:
    • Linux native binary
    • WASM interpreter for the website

build-windows-binary

  • builds the Rockstar windows binary

build-macos-binary

  • builds the macOS binary

release-rockstar-engine

  • creates the GitHub release from the latest binaries

build-and-deploy-website

  • Downloads the Rockstar WASM binary
  • builds the CodeMirror editor
  • Builds the Jekyll site
  • Deploys the site to GitHub Pages

In dev mode, I use symbolic directory links between the various parts of the project. Rebuilding the .NET solution will rebuild the WASM interpreter, which Jekyll can see as /wasm/**, and trigger a site rebuild, and all the Rockstar code examples are part of both the Rockstar.Test .NET test suite project and the codewithrockstar.com site:

> cd codewithrockstar.com
> mklink /d wasm ..\Starship\Rockstar.Wasm\bin\Debug\net8.0-browser
> mklink /d examples ..\Starship\Rockstar.Test\programs\examples
codewithrockstar.com
/wasm --> [ /Starship/Rockstar.Wasm/bin/Debug/net8.0-browser ]
/examples --> [ /Starship/Rockstar.Test/programs/examples ]
/index.html
/example.md
/js
/rockstar-editor.js (from codemirror)