SPACE.LA
◀ music select
personal / experiment / archived

Anise

Anise, a JavaScript/TypeScript-to-Rust compiler written in Rust: version 2 parses with oxc and emits Rust directly, replacing an earlier three-stage pipeline. It came just before Tumeric, and eventually Tish.

BPM
165
GRADE
B
LEVEL
6
RELEASES
0
YEARS
2025–2025

Four Days To A Compiler

Four days in the middle of May 2025 on a JavaScript to Rust compiler called Anise, under the project name gazpacho.

It went through two designs that week. Anise 1.0 was a three-stage pipeline: parse JS into a JavaScript AST, convert that to a Rust AST, and generate Rust from it. Anise 2.0 dropped the middle step and went straight from an oxc parse to Rust through a visitor. I kept the old version around for reference.

It came in the middle of a run of egui experiments: reactive bindings, a VS Code rhythm game, a virtual DOM for egui, an FFI layer, a Neon binding. Eight days after Anise came Tumeric, which took the same idea a lot further, until I decided JavaScript scoping was too much of a maze and I should design my own language. Anise was my first try at what turned into the next two years of work.

led to

  • tish2026Anise, a JavaScript/TypeScript-to-Rust compiler