Rumoca Internals

Welcome to the Rumoca developer guide.

What is Rumoca?

Rumoca is a Modelica compiler written in Rust. It compiles Modelica models to Differential-Algebraic Equations (DAE) and can simulate them or generate code for other backends.

Key features:

  • Fast parsing with excellent error messages
  • LSP support for IDE integration (VSCode, web)
  • WASM target for browser-based tooling
  • Simulation with multiple solver backends
  • Code generation via customizable templates

Who is this guide for?

This guide is for developers who want to:

  • Understand how the compiler works
  • Fix bugs or add features
  • Add new LSP capabilities
  • Extend code generation backends

Prerequisites

You should be comfortable with:

  • Rust programming
  • Basic compiler concepts (parsing, AST, type checking)
  • Git and GitHub workflows

Familiarity with Modelica is helpful but not required - we’ll explain the relevant concepts as needed.

Architecture and Contribution Rules

Normative architecture and contribution rules live in spec/, not in this guide. Start with spec/README.md and follow the required reading list in AGENTS.md before editing compiler or runtime code.