Performance • 50 to 100x faster than ESLint • Built on the OXC project stack • oxc parser • oxc allocator • … and etc https://github.com/oxc-project/bench-linter?tab=readme-ov- fi le#macbook-pro-m4-max-64-gb-1
idea of Oxlint collaboration on `Complete rewrite of ESLint` issue https://github.com/eslint/eslint/discussions/16557#discussioncomment-5448823 • But, It didn’t go well …
ESLint • Support all most of API’s surface • AST traversal • AST exploration • Fixes • Rules option • Selectors • SourceCode (include tokens) APIs • Scope analysis • De fi ne plugin De fi ne rule
VisitorHooks before after AST Visitor Apply to each rule & optimize Wraps rule object & add `create` Returns Per- fi le Per- fi le Per-AST node Rule works for Oxlint & ESLint ※ is alternative APIs Call rule once only Initalize state Retrun `false` to skip ClassDeclaration FunctionDeclaration … Cleanup resources Final analysis
Rust layer work together to run JS plugins • JS plugins are loaded into the JS layer via dynamic import • Con fi guration information is passed from the Rust layer to the JS layer and used during plugin execution • Oxlint has core technology for running JS plugins • Raw Transfer • Lazy Deserialization