# System map — rolldown/rolldown

> Canonical page: https://codevetter.com/unpack/rolldown/system-map

# System map — rolldown/rolldown

Scanned commit 37d60ff510b4b326f4b587c27f28c606d76373e8 (2026-10-02). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

The implementation crosses TypeScript, Node-API, and Rust boundaries. The public package supports independent builds, while watch and dev APIs introduce longer-lived runtime owners. Persistent state in the inspected architecture consists primarily of module/cache structures and filesystem artifacts. Distribution includes native and WASI/browser builds, with separate documentation deployment.
- The documented architecture places the TypeScript API above crates/rolldown_binding and the Rust core; the public entry exports build, defineConfig, rolldown, and watch. — [AGENTS.md#L28-36](https://github.com/rolldown/rolldown/blob/37d60ff510b4b326f4b587c27f28c606d76373e8/AGENTS.md#L28-L36) [packages/rolldown/src/index.ts#L119-128](https://github.com/rolldown/rolldown/blob/37d60ff510b4b326f4b587c27f28c606d76373e8/packages/rolldown/src/index.ts#L119-L128)
- The CLI executable enables Node's compile cache when available, schedules an unreferenced cache flush, then imports the compiled CLI entry. — [packages/rolldown/bin/cli.mjs#L1-11](https://github.com/rolldown/rolldown/blob/37d60ff510b4b326f4b587c27f28c606d76373e8/packages/rolldown/bin/cli.mjs#L1-L11) [packages/rolldown/package.json#L23-25](https://github.com/rolldown/rolldown/blob/37d60ff510b4b326f4b587c27f28c606d76373e8/packages/rolldown/package.json#L23-L25)
- ClassicBundler creates a fresh BundleFactory per operation; the core Bundler architecture retains its factory and ScanStageCache across builds. — [crates/rolldown_binding/src/classic_bundler.rs#L23-41](https://github.com/rolldown/rolldown/blob/37d60ff510b4b326f4b587c27f28c606d76373e8/crates/rolldown_binding/src/classic_bundler.rs#L23-L41) [crates/rolldown_binding/src/classic_bundler.rs#L88-109](https://github.com/rolldown/rolldown/blob/37d60ff510b4b326f4b587c27f28c606d76373e8/crates/rolldown_binding/src/classic_bundler.rs#L88-L109) [internal-docs/bundler-data-lifecycle/implementation.md#L13-44](https://github.com/rolldown/rolldown/blob/37d60ff510b4b326f4b587c27f28c606d76373e8/internal-docs/bundler-data-lifecycle/implementation.md#L13-L44)
- Bundle owns filesystem access, shared options/resolver/emitter, a plugin driver, warnings, and a scan cache; its output pipeline calls LinkStage followed by GenerateStage. — [crates/rolldown/src/bundle/bundle.rs#L31-40](https://github.com/rolldown/rolldown/blob/37d60ff510b4b326f4b587c27f28c606d76373e8/crates/rolldown/src/bundle/bundle.rs#L31-L40) [crates/rolldown/src/bundle/bundle.rs#L274-289](https://github.com/rolldown/rolldown/blob/37d60ff510b4b326f4b587c27f28c606d76373e8/crates/rolldown/src/bundle/bundle.rs#L274-L289)
- The Rust workspace includes crates and tasks and uses edition 2024; the root Node manifest pins pnpm 11.24.0 and requires Node ^20.19.0 or >=22.12.0. — [Cargo.toml#L1-9](https://github.com/rolldown/rolldown/blob/37d60ff510b4b326f4b587c27f28c606d76373e8/Cargo.toml#L1-L9) [package.json#L33-36](https://github.com/rolldown/rolldown/blob/37d60ff510b4b326f4b587c27f28c606d76373e8/package.json#L33-L36)
- Oxc provides configured AST, transformer, minifier, semantic, and codegen capabilities; napi enables async/tracing integration, and release builds use fat LTO with one codegen unit. — [Cargo.toml#L261-279](https://github.com/rolldown/rolldown/blob/37d60ff510b4b326f4b587c27f28c606d76373e8/Cargo.toml#L261-L279) [Cargo.toml#L310-315](https://github.com/rolldown/rolldown/blob/37d60ff510b4b326f4b587c27f28c606d76373e8/Cargo.toml#L310-L315)
- just test-rust runs workspace tests excluding the binding crate; Node recipes build the package and route to Rolldown and Rollup suites, with separate browser, WASI, and WebContainer commands. — [justfile#L74-98](https://github.com/rolldown/rolldown/blob/37d60ff510b4b326f4b587c27f28c606d76373e8/justfile#L74-L98) [justfile#L110-134](https://github.com/rolldown/rolldown/blob/37d60ff510b4b326f4b587c27f28c606d76373e8/justfile#L110-L134)
- Native/browser/WASI package builds are separate scripts; npm publishing uses the release environment and OIDC provenance permission, while VitePress documentation deploys through a main-only Void job. — [packages/rolldown/package.json#L115-131](https://github.com/rolldown/rolldown/blob/37d60ff510b4b326f4b587c27f28c606d76373e8/packages/rolldown/package.json#L115-L131) [.github/workflows/publish-to-npm.yml#L61-76](https://github.com/rolldown/rolldown/blob/37d60ff510b4b326f4b587c27f28c606d76373e8/.github/workflows/publish-to-npm.yml#L61-L76) [docs/package.json#L5-10](https://github.com/rolldown/rolldown/blob/37d60ff510b4b326f4b587c27f28c606d76373e8/docs/package.json#L5-L10) [.github/workflows/deploy-website.yml#L79-102](https://github.com/rolldown/rolldown/blob/37d60ff510b4b326f4b587c27f28c606d76373e8/.github/workflows/deploy-website.yml#L79-L102)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
