Rune DSL (.rosetta) Language Support

Full-featured IDE support for Rosetta domain models — FINOS CDM, DRR, ISO 20022, and custom financial models.
Build, explore, and test Rune DSL (.rosetta) models directly in VS Code. Includes a RuneBook editor for interactive code generation and validation, 3D type graph visualization, project management, and a build system for compiling models from source.
Note: any mention of "Rosetta" herein relates to the .rosetta file extension and the Rune DSL language, not any licensed platform.
What's New in v7
- RuneBook Editor — Interactive notebook-style editor for building and testing Rune DSL types
- Code Generation — Generate Java from Rune DSL source using the official toolchain
- Validation — Run validators against generated types with detailed results
- 3D Graph Visualization — Three.js-based type relationship explorer
- Template System — Start from pre-built templates (Basic Type, JSON Ingest, and more)
- Build Manager — Download and manage Rune toolchains directly from GitHub releases
Features
RuneBook Editor
Open .runebook files in an interactive editor:
- Rune Layer — Write Rune DSL source with Monaco syntax highlighting
- Java Layer — View generated Java code across multiple files
- Graph Layer — 3D visualization of type relationships
- Generate — Compile Rune DSL to Java with the official code generation JAR
- Execute — Run generated functions with parameter input
- Validate — Run all three validator types with detailed results modal
- Template Guide — Contextual help panel when using templates
- Default Instances — Pre-populated test data from templates
Code Generation & Validation
Generate Java from Rune DSL and validate the output:
- Validator — Cardinality and structural checks
- TypeFormatValidator — Format constraints (string patterns, length, numeric ranges)
- OnlyExistsValidator — Conditional field existence rules
Results display in a modal with pass/fail counts and detailed failure reasons.
Template System
Create new RuneBooks from pre-built templates:
| Template |
Description |
| Basic Type |
Simple type with address, validators, and type aliases |
| JSON Ingest |
Trade ingestion with mapping functions and sample data |
Templates include helpers, default instances, and ingestor configurations.
3D Graph Visualization
Interactive Three.js graph showing type relationships:
- Inheritance hierarchies
- Attribute connections between types
- Zoom, pan, and rotate
- Integrated into the RuneBook editor as a layer
Activity bar panel for managing your Rune DSL workspace:
- Environment Status — Check prerequisites (Java, Maven, Node.js, Git)
- Project Management — Create and open projects
- Build Manager — Download model repositories (CDM, DRR, ISO 20022) and build from source
- RuneBooks — List, create, open, and delete RuneBook files
- GitHub Authentication — Sign in to access private model repositories
Code Intelligence
When a built project is available (with indices in .rune/indices/):
| Feature |
Shortcut |
Description |
| Go to Definition |
Ctrl+Click / F12 |
Jump to type definitions |
| Find References |
Shift+F12 |
Find all usages of a type |
| Document Symbols |
Ctrl+Shift+O |
Navigate file structure |
| Workspace Symbols |
Ctrl+T |
Search all symbols globally |
| Hover Information |
Hover |
Type details, attributes, reference counts |
| Auto-completion |
Ctrl+Space |
Intelligent suggestions |
| CodeLens |
— |
Reference counts and graph links above types |
Syntax Highlighting
Full TextMate grammar for .rosetta files:
- Keywords (
type, enum, func, rule, namespace)
- Type references and attributes
- Documentation blocks (
<"...">)
- Annotations and conditions
Quick Start
1. Install the Extension
From VSIX:
- Download the
.vsix file from GitHub releases
- In VS Code: Extensions >
... > "Install from VSIX..."
From command line:
code --install-extension rune-dsl-language-support-<version>.vsix
2. Create a Project
- Click the Rune DSL icon in the Activity Bar
- Click Create New Project and choose a folder
- Check the Environment Status — install any missing prerequisites
3. Build a Model
- In the Build Manager section, select a model repository (CDM, DRR, or ISO 20022)
- Choose a version and click Build
- Wait for the Maven build to complete
4. Create a RuneBook
- In the RuneBooks section, click the + button
- Choose a template or start blank
- Write Rune DSL code, click Generate, then explore the Java output and graph
Configuration
Access settings via File > Preferences > Settings and search for "runeDsl".
Editor Settings
| Setting |
Default |
Description |
runeDsl.codeLens.enabled |
false |
Show inline annotations above types |
runeDsl.codeLens.showGraphLink |
true |
Include graph link in CodeLens |
runeDsl.hover.showAttributes |
true |
Show type attributes in hover |
runeDsl.hover.maxAttributes |
8 |
Max attributes shown in hover (0-50) |
runeDsl.hover.showReferenceCount |
true |
Show reference count in hover |
runeDsl.search.maxResults |
50 |
Max workspace symbol results (10-500) |
Graph Settings
| Setting |
Default |
Description |
runeDsl.graph.openInColumn |
"two" |
Where to open graph: beside, active, or two |
runeDsl.graph.detailsPanelWidth |
350 |
Details panel width in pixels (250-800) |
Build Settings
| Setting |
Default |
Description |
runeDsl.build.maxConcurrent |
4 |
Concurrent Maven build threads (1-16) |
runeDsl.build.timeoutMinutes |
20 |
Maven build timeout in minutes (5-60) |
runeDsl.build.autoRebuildOnEdit |
false |
Auto-rebuild on .rosetta file changes |
Commands
| Command |
Description |
Rune DSL: Create New Project |
Create a new Rune DSL project |
Rune DSL: New RuneBook |
Create a new RuneBook file |
Rune DSL: Show Type Graph |
Open type graph for current file |
Rune DSL: Quick Validate |
Validate active or modified files |
Rune DSL: Full Rebuild Override Model |
Rebuild the override model |
Rune DSL: Focus Search |
Focus the workspace symbol search |
Requirements
Minimum
For Code Generation & Validation
- Java 21+ (Adoptium Temurin recommended)
- Rune toolchain JAR (downloaded automatically by Build Manager)
For Building Models from Source
- Maven 3.8+
- GitHub account (for accessing model repositories)
| Platform |
Status |
| Windows 10/11 (x64) |
Fully supported |
| macOS |
Supported |
| Linux |
Supported |
Architecture
The extension uses a genuine RuneBook engine — the same JavaScript that powers the web-based RuneBook editor — running inside VS Code webviews. A thin adapter layer bridges the browser's fetch() API to VS Code's postMessage protocol, so the genuine code runs unmodified.
Code generation and validation use the official Rune DSL toolchain JAR (notebook-gen.jar) via subprocess calls from the extension host.
Supported Models
| Model |
Source |
Description |
| FINOS CDM |
GitHub (private) |
Common Domain Model for derivatives |
| DRR |
GitHub (private) |
Digital Regulatory Reporting |
| ISO 20022 |
GitHub (public) |
Financial messaging standard |
| Custom Models |
Local |
Any Rosetta-based domain model |
Troubleshooting
RuneBook won't generate
- Check the Environment Status in the sidebar — Java must be installed
- Ensure a toolchain is available (run a build first, or check
data/rune-tools/)
- Check the Output panel (View > Output > select "Rune DSL") for errors
Validators return empty results
- TypeFormatValidator requires
typeAlias with constraints (e.g., string(pattern: "..."))
- OnlyExistsValidator requires
condition blocks with existence rules
- If a validator has no rules to check, empty results are expected
Code intelligence not working
Code intelligence requires built indices in .rune/indices/. Run a build first via the Build Manager.
Build fails
- Ensure Maven and Java are installed and on PATH
- Check GitHub authentication for private repositories (CDM, DRR)
- Check the build output panel for specific errors
Version History
7.0.0 (Current)
- RuneBook editor with genuine RuneBook engine
- Code generation via Rune DSL toolchain JAR
- Three validator types (Validator, TypeFormatValidator, OnlyExistsValidator)
- Three.js 3D graph visualization
- Template system with Basic Type and JSON Ingest
- Build Manager with GitHub release integration
- Project Manager sidebar
6.0.1 (Previous)
- D3-based graph explorer
- Index-based code intelligence
- Rune Explorer sidebar
Attribution & Licensing
License: Apache 2.0 — See LICENSE for details.
This extension incorporates components from the open-source Rune DSL project maintained by FINOS.
Feedback & Issues
Disclaimer
This extension is provided "as-is" without warranty of any kind. Evaluate suitability before use in production environments.
This is a community extension and is not affiliated with, endorsed by, or sponsored by any commercial entity.
Built with the Rune DSL toolchain and VS Code Extension API