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
670
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
29
BFCacheを活用して無限スクロールのUX を改善した話
apple_yagi
0
190
forwardRef を禁止したくて Biome に PR を出した話
apple_yagi
0
170
PR_TIMESにおけるFastlyの導入と運用について.pptx.pdf
apple_yagi
1
79
PR TIMESにおけるNext.jsとcacheの付き合い方
apple_yagi
4
3.2k
開発速度を上げつつ品質を保つためのフロントエンド開発
apple_yagi
1
1k
Other Decks in Technology
See All in Technology
モノリス Rails でも日中に rails db:migrate を走らせたい! / Daytime rails db:migrate on Monolithic Rails!
euglena1215
4
540
【CEDEC2026】ゲームシナリオライターを支援するAIツール開発の実践 ― 設計とプロンプトの工夫 ―
cygames
PRO
1
770
新しい SLO が良い感じにハマっている話
z63d
5
2.1k
サイバー捜査員研修(後半)
nomizone
1
790
AI時代の強いチームの作り方
yuukiyo
25
16k
初めてのGitHub Actions / GitHub Actions at First
tooppoo
0
150
MIRU 2026 チュートリアル
keisuke198619
0
860
[しろおび夏祭り2026] チャットするAIから、作業するAIへ - 使われ方の変化と、その裏側で起きていること
kk0n
0
1.6k
【CEDEC2026】『ウマ娘 プリティーダービー』 英語版のキャラクターの方言や口調をローカライズするための創造的アプローチ
cygames
PRO
1
200
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
4.9k
ガバメント AI 源内を地方自治体は活用できるのか可能性と課題、期待について
takeda_h
1
320
Pavlokで始める電撃駆動開発
sgrsn
0
170
Featured
See All Featured
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.2k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
200
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
440
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
Are puppies a ranking factor?
jonoalderson
1
3.8k
GitHub's CSS Performance
jonrohan
1033
470k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
440
Rails Girls Zürich Keynote
gr2m
96
14k
Color Theory Basics | Prateek | Gurzu
gurzu
0
410
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
360
Raft: Consensus for Rubyists
vanstee
141
7.6k
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