oxc-project/oxc
6 articles
Prerequisites
- ›Basic Rust knowledge (cargo workspaces, crates, modules)
- ›Familiarity with JavaScript tooling concepts (parsers, linters, bundlers)
Navigating the Oxc Codebase: Architecture and Crate Map
A guided tour of the Oxc project's architecture, covering its mission, three-tier crate organization, the CompilerInterface pipeline, and practical development guidance.
The Arena Allocator and AST Design: Oxc's Performance Foundation
Deep dive into the bump allocator that underpins all of Oxc's performance, and the AST design that intentionally diverges from ESTree for type safety.
From Source to Meaning: The Parser and Semantic Analyzer
Traces the journey from source text to a fully-resolved AST, covering the recursive descent parser, error recovery, and how SemanticBuilder constructs scope chains and symbol tables.
Two Ways to Walk: The Visit and Traverse Systems
Explores Oxc's dual AST traversal systems — read-only Visit for analysis, mutable Traverse for transformation — and the ast_tools code generator that produces both.
Inside Oxlint: Linter Architecture and Rule System
End-to-end walkthrough of the oxlint pipeline — from CLI arg parsing through parallel file processing to diagnostic output — covering the Rule trait, LintContext, and performance optimizations.
Transforming and Outputting Code: Transformer, Minifier, and Codegen
Covers the output side of Oxc's pipeline — the Babel-compatible transformer, fixed-point minifier, codegen printer, Prettier-compatible formatter, and Node.js NAPI bindings.