axios の連続 CVE を機に「脱 axios」を検討するチームが増えている。 ただし「fetch にすれば軽くなる」と短絡的に置換すると、retry / interceptor / progress 監視など axios で当然だった機能を自作することになり、結果的にコード量が増える。本記事では、axios の主要代替 5 つを 6 軸で比較し、用途別の推奨と移行コストの目安を整理する。
目次
- axios の代替候補 5 つの全体像
- 6 軸スコアカード比較表
- bundle size 実測値
- TypeScript 対応の差
- retry/interceptor/progress 機能比較
- 脆弱性履歴 2024-2026
- 用途別 推奨ライブラリ
- axios → 代替への移行コスト目安
- よくある質問(FAQ)
axios の代替候補 5 つの全体像
横にスクロールして確認できます
| ライブラリ | リリース | 主な特徴 | 主要採用例 |
|---|---|---|---|
| 標準 fetch | ブラウザ・Node.js 18+ 標準 | ゼロ依存、最小 | Next.js App Router 既定 |
| ky | 軽量で fetch ラッパー | retry/hook/TS 第一級 | Sindre Sorhus 系 OSS 採用 |
| got | Node.js 専用 | retry/pagination/HTTPS Agent 制御 | サーバ・CLI 系 |
| superagent | 古参(2011-) | プラグインエコシステム | 既存大規模システムの保守 |
| wretch | 軽量 fluent API | 直感的チェーン記法 | フロントエンド SPA |
FREE DOWNLOAD
中小企業のDX推進「失敗を防ぐ5ステップ」ガイドを無料でお送りします
多くの企業がつまずくポイントを着手順に整理した無料ガイド。相談する前に、自社の現在地と進め方を掴めます。
6 軸スコアカード比較表
横にスクロールして確認できます
| ライブラリ | bundle | TS | retry | interceptor | 脆弱性 | エコシステム | 総合 |
|---|---|---|---|---|---|---|---|
| 標準 fetch | ◎ | ○ | ✕(自作) | ✕(自作) | ◎(CVE 0) | △ | 14/18 |
| ky | ◎ | ◎ | ◎ | ◎ | ◎ | ○ | 17/18 |
| got | △ | ◎ | ◎ | ◎ | ○ | ◎ | 16/18 |
| superagent | △ | △ | ○ | ○ | △ | ◎ | 12/18 |
| wretch | ◎ | ◎ | ○ | ○ | ◎ | ○ | 15/18 |
| axios(参考) | △ | ○ | ◎ | ◎ | ✕(CVE 多) | ◎ | 13/18 |
bundle size 実測値
横にスクロールして確認できます
| ライブラリ | min | min+gz | tree-shaken |
|---|---|---|---|
| 標準 fetch | 0 KB | 0 KB | 0 KB |
| ky | 11.2 KB | 4.0 KB | 3.2 KB |
| wretch | 8.5 KB | 3.2 KB | 2.7 KB |
| got | 88 KB | 27 KB | Node.js 専用 |
| superagent | 56 KB | 18 KB | 16 KB |
| axios | 35 KB | 13 KB | 11 KB |
TypeScript 対応の差
- ky: 第一級 TypeScript 対応。型推論が型ガード級に効く。
- got: 完全 TypeScript 化済み。レスポンス型ジェネリック対応。
- wretch: チェーンメソッドの型推論が秀逸。
- fetch: 標準型は緩い(
unknown多用)、ラッパー自作で型補強が前提。 - axios: 型は提供されるが
Promise<AxiosResponse<T>>のネストで冗長。 - superagent: 型定義は外部、推論弱い。
retry/interceptor/progress 機能比較
横にスクロールして確認できます
| 機能 | fetch | ky | got | superagent | wretch | axios |
|---|---|---|---|---|---|---|
| retry | 自作 | 標準 | 標準 | プラグイン | 標準 | 標準 |
| interceptor (req/res) | 自作 | hook | hook | プラグイン | middlewares | interceptor |
| upload progress | △ | △ | ○ | ○ | △ | ◎ |
| download progress | △ | △ | ○ | ○ | △ | ◎ |
| cancel | AbortController | 標準 | 標準 | プラグイン | AbortController | CancelToken |
| timeout | AbortController | 標準 | 標準 | 標準 | 標準 | 標準 |
脆弱性履歴 2024-2026
横にスクロールして確認できます
| ライブラリ | 2024 | 2025 | 2026(4 月時点) | 累計 |
|---|---|---|---|---|
| 標準 fetch | 0 | 0 | 0 | 0 |
| ky | 0 | 1 (Low) | 0 | 1 |
| got | 1 (High) | 0 | 0 | 1 |
| superagent | 1 (Medium) | 1 (High) | 0 | 2 |
| wretch | 0 | 0 | 0 | 0 |
| axios | 2 | 2 | 2 | 6 |
用途別 推奨ライブラリ
横にスクロールして確認できます
| 用途 | 第一推奨 | 第二推奨 | 理由 |
|---|---|---|---|
| Next.js App Router (BFF) | 標準 fetch | ky | App Router の cache / revalidate と統合 |
| React SPA | ky | wretch | bundle 軽量+retry 標準 |
| Node.js サーバ(API) | got | ky | HTTPS Agent 制御の柔軟性 |
| CLI ツール | got | ky | retry/progress の品質 |
| 既存 axios プロジェクト保守 | axios 最新版維持 | — | 移行コスト > 維持コスト |
| レガシー大規模 | superagent 維持 | — | プラグイン依存大、移行リスク高 |
axios → 代替への移行コスト目安
前提: axios 利用箇所 100 callsite、開発者 2 名
横にスクロールして確認できます
| 移行先 | 工数目安(人日) | 主作業 |
|---|---|---|
| 標準 fetch | 25-35 | retry/interceptor 自作、エラーハンドル統一 |
| ky | 15-20 | hook 移植、型再定義 |
| got | 10-15(Node.js のみ) | options 命名修正 |
| wretch | 18-25 | チェーン API への書換 |
| superagent | 30-40 | プラグイン運用学習込み |
よくある質問(FAQ)
Q. Next.js のサーバアクションでは何を使うべき? A. App Router の標準 fetch が cache/revalidate と統合され最良。Pages Router 時代の axios は段階的に置換推奨。
Q. ky と wretch、どちらを選ぶ? A. retry/hook を多用するなら ky、宣言的なチェーン記法を好むなら wretch。bundle size はほぼ同等。
Q. axios の interceptor 資産を捨てたくない場合は?
A. ky の hooks.beforeRequest / afterResponse で 90% は移植可能。残り 10%(CancelToken など)は AbortController に書換が必要。
参考資料
- bundlephobia.com 各ライブラリの bundle size
- npm trends による週次ダウンロード数
- NVD axios / ky / got / superagent CVE 検索結果
axios 脱却の段階的移行設計や retry/interceptor 移植支援は、GXO のフロントエンド最適化サービスで対応しています。中堅企業向けに 2-3 ヶ月の移行ロードマップ策定から実装まで支援可能です。
参考情報
- 制度、価格、仕様、脆弱性、法務、セキュリティに関する判断は、公開時点の公式情報と一次情報を確認したうえで更新してください。







