documentation
larvae docs
A Luau preprocessor written in Rust. It turns your aliases into native Roblox string requires, refuses to emit a require that would break at runtime, and rebuilds incrementally.
25 pages · 5 categories · last updated Aug 19, 2026
Getting started
2 pages · updated Aug 16, 2026
Reference
5 pages · updated Aug 19, 2026
- CLI referenceEvery larvae command, flag, exit code, and environment variableAug 19, 2026
- ConfigurationEvery larvae.toml key, the other files larvae reads, and how they mergeAug 19, 2026
- RulesThirty six rules shipped, twenty seven under darklua's names and nine larvae onlyAug 16, 2026
- FormattingEvery [fmt] option, its default, and what it doesAug 19, 2026
- LintingAll fifty one lints, their default levels, and the flag comments that silence themAug 19, 2026
Concepts
6 pages · updated Aug 19, 2026
- Require targetsOne input semantics, three output targets, and the one caveat that can break a correct looking buildAug 16, 2026
- Realms and clonesWhy larvae refuses to emit a require that would break in a running gameAug 16, 2026
- Failure classesWhy strict is not one big switchAug 19, 2026
- Rojo integrationOne project file instead of the hand synced pairAug 16, 2026
- Incremental builds and watch modeA cache key that includes everything require resolution readsAug 16, 2026
- Editor setupOne command for config completion, a language server for diagnostics and formatting, and go to definition through .luaurcAug 19, 2026
Worms
8 pages · updated Aug 19, 2026
- What a worm islarvae's extensions, three forms, four capabilities, and one contract from all of themAug 19, 2026
- Using wormsThe [worms] table, three install channels, run order, inheritance, and where a worm's settings liveAug 19, 2026
- worm.tomlThe manifest beside the artifact, the four capability tables, and what larvae refuses at loadAug 16, 2026
- Writing a worm in LuauNo toolchain, typed against worm.d.luau, a file in your own repoAug 19, 2026
- Writing a worm in RustThe larvae-worm crate, the wasm macros, and the native pipe protocolAug 19, 2026
- The node APIOpaque handles, deferred edits, the batched native message, and the 34 node kindsAug 16, 2026
- How a build runs with wormsWhere a front-end sits, how passes work, and why a warm build calls no worm at allAug 16, 2026
- What a worm costsMeasured per node crossing, why the boundary dominates, and how each of the three forms paysAug 16, 2026
Project
4 pages · updated Aug 19, 2026
- PerformanceMatched comparisons against darklua and selene, the incremental columns, and the four reasons behind themAug 16, 2026
- Migrating from darkluaWhat ports directly, what changes, and what your stylua and selene files keep doingAug 16, 2026
- RoadmapWhat is still ahead, published benchmarks, a 1.0 freeze, and four worm gapsAug 16, 2026
- Source layoutWhere each decision lives in the CLI repo, for contributors reading the codeAug 19, 2026