Skip to content

Cross-platform desktop IDE for santa-lang with multi-reindeer execution, comparative benchmarking, and AoC integration

License

Notifications You must be signed in to change notification settings

eddmann/santa-lang-workbench

Repository files navigation

santa-lang Workbench

santa-lang Workbench

A cross-platform desktop IDE for santa-lang, a functional programming language designed for solving Advent of Code puzzles.

Built to provide a controlled environment for writing and testing AoC solutions, while exploring the different backend implementations (reindeer) available for santa-lang.

Installation

Homebrew (macOS)

brew install eddmann/tap/santa-lang-workbench

Manual Download

Download the latest release from GitHub Releases:

  • macOS: .dmg (Intel and Apple Silicon)
  • Linux: .deb and .AppImage

Screenshots

Running a solution

Run solutions with real-time output

Running tests

Run tests with expected values

Puzzle integration

Integrated AoC puzzle descriptions

Performance comparison

Compare performance across reindeer

Settings
General settings

Theme and AoC session configuration

Reindeer management

Manage installed reindeer

Formatting settings

Code formatting with Tinsel

Download reindeer

Download new reindeer versions

Features

  • Run Solutions - Execute santa-lang code with real-time streaming output showing progress as each part runs
  • Multiple Reindeer - Download and manage multiple backend implementations, switch between them instantly
  • AoC Integration - Auto-detects read("aoc://YEAR/DAY") patterns in your code and fetches puzzle descriptions and inputs using your session token
  • Comparative Testing - Run the same code on multiple reindeer simultaneously, comparing execution times side-by-side with performance charts
  • Code Formatting - Built-in formatting via santa-lang Tinsel
  • Modern Editor - Monaco editor with syntax highlighting, multiple tabs, and dark themes

Tech Stack

  • Frontend: React 19, Redux Toolkit, TailwindCSS v4, Monaco Editor
  • Backend: Tauri 2.0, Rust
  • Build: Vite, Bun, TypeScript

Development

Prerequisites

  • Bun - JavaScript runtime and package manager
  • Rust - For the Tauri backend

Commands

Command Description
make install Install all dependencies
make dev Start development server
make build Build production app
make fmt Format all code
make lint Run all linting

Reindeer

Codename Type Description Repository
Comet Rust Tree-walking interpreter eddmann/santa-lang-comet
Blitzen Rust Bytecode VM eddmann/santa-lang-blitzen
Dasher Rust LLVM native compiler eddmann/santa-lang-dasher
Donner Kotlin JVM bytecode compiler eddmann/santa-lang-donner
Prancer TypeScript Tree-walking interpreter eddmann/santa-lang-prancer

Keyboard Shortcuts

Shortcut Action
Cmd + Enter Run solution
Cmd + Shift + Enter Run tests
Cmd + S Save file
Cmd + Shift + F Format code

Related Projects

License

MIT License - see LICENSE for details.

About

Cross-platform desktop IDE for santa-lang with multi-reindeer execution, comparative benchmarking, and AoC integration

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published