CodeVetter · Repo Unpack · System map
oxc-project/oxc
The repository combines reusable compiler components with native applications and Node.js bindings. Runtime boundaries differ between Rust-only CLIs, NAPI callbacks, the stdio language server, and the optional tsgolint subprocess. Application persistence is visible as source-file rewrites and a JSON suppression baseline. Build and verification definitions span Cargo, pnpm, Just, and GitHub Actions.
- Cargo groups apps, crates, napi, and tasks into one workspace using resolver 3 and Rust edition 2024; the declared MSRV is 1.97.0.
- The shared dependency table connects allocator, AST, parser, semantic, transformer, minifier, codegen, diagnostics, and traversal crates; formatter and application crates are separately marked unpublished.
- Oxlint's native entrypoint uses a synchronous Rayon CLI path and constructs a Tokio runtime only when --lsp is selected.
- Oxfmt exports both a Rust executable and lib/cdylib artifacts; its Rust main supports basic CLI processing, while run_cli supplies Node-backed LSP, stdin, initialization, and migration dispatch.
- The language-server transport is stdin/stdout through tower_lsp_server; its service registers document lifecycle, diagnostics, formatting, code actions, and workspace commands.
- LintRunner owns regular LintService, optional TsGoLintState, and a shared disable-directive store; tsgolint is launched as a separate process with piped JSON input.
- Persistent outputs include formatter source rewrites, lint-fix source rewrites, and pretty-printed JSON suppression tracking saved through fs::write.
- Root pnpm scripts build and test selected application, NAPI, and package workspaces sequentially; Cargo aliases provide checks, Clippy, conformance, benchmarking, and code generation, while just test invokes cargo test --all-features.