Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
最近の推しリンター、Oxlintをご紹介
Search
Ryuya Yanagi
February 25, 2026
Technology
750
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
最近の推しリンター、Oxlintをご紹介
Ryuya Yanagi
February 25, 2026
More Decks by Ryuya Yanagi
See All by Ryuya Yanagi
XO から Oxlint に移行した話
apple_yagi
0
36
BFCacheを活用して無限スクロールのUX を改善した話
apple_yagi
0
200
forwardRef を禁止したくて Biome に PR を出した話
apple_yagi
0
180
PR_TIMESにおけるFastlyの導入と運用について.pptx.pdf
apple_yagi
1
82
PR TIMESにおけるNext.jsとcacheの付き合い方
apple_yagi
4
3.2k
開発速度を上げつつ品質を保つためのフロントエンド開発
apple_yagi
1
1k
Other Decks in Technology
See All in Technology
DatadogのBits Chatが開発組織にもたらしたもの / What Bits Chat Has Brought Us
sms_tech
1
300
2026-08-15 JAWS-UG 茨城 #16 Secrets ManagerにおけるSecret値の管理(Terraformの場合) / Secrets Manager Secrets
masasuzu
0
530
Head First モブプログラミング / Head First Mobprogramming
takaking22
10
12k
作って理解するCoding Agent 〜フレームワークに頼らないピュア Python での実装〜
takapy
3
1.1k
AI開発に用いられるHPC技術について
gpuunite_official
0
250
AI画像認識を活用したゲーム内決済処理検証の自動化
gree_tech
PRO
0
130
AIにブラウザを触らせて、E2EテストをPlaywrightで書く
koji_kawamura
0
370
案件に一番詳しいAIを Amazon Bedrock AgentCore で作る ― 知見が知見を生むチームへ / Compounding Knowledge with AgentCore
yusukeshimizu
1
170
AIのためのEthernet技術動向 (SerDes)
markunet
1
300
英語が話せなくてもKubeConスタッフに参加した話
yusuke427
2
1.1k
[potatotips #96] Give Your AI Agent the Flutter Playbook
korodroid
0
140
同じWAFが、攻撃の“形”は弾く── 正当な“形”の不正は通す
kuroneko13
0
270
Featured
See All Featured
The Curse of the Amulet
leimatthew05
2
14k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.8k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
480
Building AI with AI
inesmontani
PRO
1
1.2k
The Limits of Empathy - UXLibs8
cassininazir
1
610
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
310
Mind Mapping
helmedeiros
PRO
1
330
Scaling GitHub
holman
464
140k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
Why Our Code Smells
bkeepers
PRO
340
58k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
Transcript
最近の推しリンター Oxlintをご紹介 ツナギメオフライン ベンキョウカイ #5 やなぎ @apple_yagi
やなぎ PR TIMES フロントエンドエンジニア X:@apple_yagi セブンで売っているデカ豚ラーメンに ハマってます
AI がコードを書く時代になり、ガードレールとしてのリンターの重要性は増して いる リントルールの豊富さ、カスタム性の重要性 またガードレールとして機能するだけではなく、フィードバックの速さも重要 リントの実行時間が伸びるほど生産性が低下する そのため、品質を担保でき、かつ実行時間の短いリンターが必要とされている この2つを持ち合わせたリンターが Oxlint 昨今のリンターの重要性
Rust 製の JavaScript/TypeScript 向けリンター ドキュメント:https://oxc.rs/docs/guide/usage/linter.html Oxc という JavaScript/TypeScript 向けのツール群の1つ Oxlint
以外にも Oxfmt(Prettier 互換のフォーマッター)や、oxc-parser など がある Oxlint の内部で oxc_parser や oxc_allocator などを使用している Oxlintとは
実行速度 組み込みのプラグイン JS Plugins Type-Aware Linting 開発スピード Oxlint の推しポイント
実行速度 組み込みのプラグイン JS Plugins Type-Aware Linting 開発スピード Oxlint の推しポイント
ESLint の50~100倍、同じ Rust 製のリンターである Biome の約2倍速い https://github.com/oxc-project/bench-linter 手元検証(MacBook Pro M1
Max / 64GB): 個人プロジェクトで ESLint 約6秒 → Oxlint 約0.9秒(約6.7倍高速化) プロジェクトの規模が大きくなるほど倍率は上がっていく Oxlint のベンチマーク
実行速度 組み込みのプラグイン JS Plugins Type-Aware Linting 開発スピード Oxlint の推しポイント
690以上のルールが Rust で実装されている ESLint のコアルールや、 eslint-plugin- import 、 eslint-plugin-react 、
@next/eslint-plugin-next などよく使う プラグインのルールが実装されている Vue.js は script タグの部分のみ対応済みで、 Svelte などは今後対応予定 組み込みのプラグイン
.oxlintrc.json に以下のような設定を書くことで有効にできる { "$schema": "./node_modules/oxlint/configuration_schema.json", "plugins": [ "eslint", "import", "jsx-a11y",
"react", "react-perf", "typescript", "vitest" ], "rules": { "import/no-named-export": "off", "react/react-in-jsx-scope": "off", "import/prefer-default-export": "off" } } 組み込みのプラグインの使用例
ESLint だと eslint-plugin-react などを依存関係として追加する必要があるが Oxlint の場合はその必要がない 昨今のサプライチェーンアタックのリスク軽減になるかも これらのルールは Rust で記述されているため、実行速度は
ESLint プラグインよ りも高速に動作するメリットもある 組み込みプラグインのメリット
実行速度 組み込みのプラグイン JS Plugins Type-Aware Linting 開発スピード Oxlint の推しポイント
JavaScript で記述されたプラグイン、カスタムルールを実行する機能(Technical preview) Oxlint のプラグインAPIは ESLint v9 以上と互換性があるので既存の ESLint プ
ラグインがほぼ動く TypeScript の型情報が必要な場合や、Svelte、Vue などのファイルは動かな い 対応状況:https://github.com/oxc-project/oxc/discussions/14862 JavaScript でプラグインを書いても Rust <-> JavaScript 間のオーバーヘッドが少 なくなるように設計されている https://github.com/oxc-project/oxc/issues/2409 JS Plugins とは
@tanstack/eslint-plugin-query を使用する例 { "$schema": "./node_modules/oxlint/configuration_schema.json", "jsPlugins": ["@tanstack/eslint-plugin-query"], "rules": { //
現状 recommended などの preset を一括で有効にすることはできないので1つずつ指定する必要がある "@tanstack/query/exhaustive-deps": "error", "@tanstack/query/no-rest-destructuring": "warn", "@tanstack/query/stable-query-client": "error", "@tanstack/query/no-unstable-deps": "error", "@tanstack/query/infinite-query-property-order": "error", "@tanstack/query/no-void-query-fn": "error", "@tanstack/query/mutation-property-order": "error", }, } 既存のプラグインや、カスタムルールがそのまま動くため、ESLint からの移行がしや すい JS Plugins の使用例
npx @oxlint/migrate を実行することで既存の eslint config から oxlint config を 生成することができる
https://github.com/oxc-project/oxlint-migrate Oxlint でサポートされていないプラグイン、カスタムルールを使用する場合を想 定して ESLint との併用も考えられている https://github.com/oxc-project/eslint-plugin-oxlint ESLint からの移行パス
実行速度 組み込みのプラグイン JS Plugins Type-Aware Linting 開発スピード Oxlint の推しポイント
TypeScript の型情報を使用したリント機能のこと ESLint では typescript-eslint を使用することで機能するが、内部で TypeScript を使用しているため、速度が遅いという問題がある Oxlint では
typescript-go(tsgo)を使用した tsgolint を使用して、型情報を利用 したリントの高速化を行なっている(alpha) 実行コマンド: oxlint --type-aware tsgo はまだ型情報を取得するAPIを公開していないため、非公開のAPIを無 理やり使用して実装されている Type-Aware Linting とは
Biome にも Type-Aware Linting があるが TypeScript / tsgo を使用せず、独自に型 推論を行なっている
TypeScript コンパイラの挙動を完全に再現できてはいないが、 noFloatingPromises のルールでは85%ほどは網羅できているとのこと https://biomejs.dev/blog/biome-v2-1/#improved-type-inference Oxlint は tsgo の非公開APIを使用しているため、tsgo の変更に追従していけるの かどうかが問題になるが、Biome は自前で実装しているため、精度はやや劣るが 運用の安定性は高そう Biome の Type-Aware Linting との違い
実行速度 組み込みのプラグイン JS Plugins Type-Aware Linting 開発スピード Oxlint の推しポイント
週に1 ~ 2回マイナーバージョンが上がっており、直近1週間(2026/02/18〜 2026/02/24)でマージされた Pull Request は109個 VoidZero という会社が開発しており、フルタイムメンテナーの存在が大きい VoidZero
は Vue.js / Vite を開発したEvan Youさんが立ち上げた会社 またクォーターごとに何をやるのかが明確になっているため、今後追加・改善 される機能を先にキャッチアップできるのも嬉しい Plan for 2026 Q1 (Jan - Mar) 開発スピードの速さ
ESLint の50~100倍、同じ Rust 製のリンターである Biome の約2倍速い 組み込みのプラグインが多数実装されており、依存関係を追加しなくても様々な ルールを有効にできる JS Plugins
を使用することで既存の ESLint プラグインや、カスタムルールが動作 する tsgo を使用した Type-Aware Linting が実装されており、型情報を使用したリント ルールも高速に実行できる 毎週多くの新規のリントルールや機能が追加されている まとめ
宣伝
None