oxc-project/oxc
6 articles
前置知识
- ›基础 Rust 知识(cargo workspace、crate、模块)
- ›熟悉 JavaScript 工具链相关概念(解析器、Linter、打包器)
01
探索 Oxc 代码库:架构与 Crate 全景图
深入导览 Oxc 项目的架构设计,涵盖其核心目标、三层 Crate 组织结构、CompilerInterface 流水线以及实用的开发指南。
02
Arena 分配器与 AST 设计:Oxc 的性能基石
深入剖析支撑 Oxc 全部性能优势的 bump 分配器,以及为了类型安全而有意偏离 ESTree 的 AST 设计思路。
03
从源码到语义:解析器与语义分析器
追踪从源文本到完整解析 AST 的全过程,涵盖递归下降解析器、错误恢复机制,以及 SemanticBuilder 如何构建作用域链与符号表。
04
遍历 AST 的两种方式:Visit 与 Traverse 系统
深入探讨 Oxc 的两套 AST 遍历系统——用于分析的只读 Visit,以及用于转换的可变 Traverse——以及生成两者的 ast_tools 代码生成器。
05
深入 Oxlint:Linter 架构与规则系统
全流程解析 oxlint 的处理管道——从 CLI 参数解析、并行文件处理,到诊断信息输出——深入介绍 Rule trait、LintContext 以及各项性能优化手段。
06
代码转换与输出:Transformer、Minifier 与 Codegen
深入介绍 Oxc 流水线的输出端——兼容 Babel 的 transformer、不动点 minifier、codegen 打印器、兼容 Prettier 的 formatter,以及 Node.js NAPI 绑定。