ページ内ナビ
概要
Kyは標準Fetch APIを土台にした小さなHTTP clientです。method shortcut、non-2xxのerror化、JSON送受信、retry、timeout、base URL、hook、progress、Standard Schemaによるresponse validationなどを追加し、browser・Node.js・Bun・Denoで利用できます。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
fetch互換の入力にmethod shortcutとbody helperを加える
ky.getやky.postなどのshortcutを使え、.json()、.text()、.blob()などresponse bodyの取得も短く書けます。JSON requestはjson optionで送信でき、non-2xx responseはHTTPErrorとして扱われます。
出典:[1]
retry・timeout・baseUrl・hookをclient設定としてまとめる
retry policy、per-attempt timeout、total timeout、baseUrl、request/response lifecycle hookをoptionとして持てます。extendを使って共通defaultを持つclient instanceを作り、認証headerやerror handlingを集約できます。
出典:[1]
TypeScript genericとStandard SchemaでJSON responseを型付け・検証する
.json<T>()はTypeScript genericを受け取り、型を指定しない場合はunknownになります。Standard Schema互換validatorを渡すとruntime validationも行え、失敗時はSchemaValidationErrorとして扱えます。
出典:[1]
向いている用途
plain fetchの互換性を保ちながらfrontendのHTTP処理を標準化したい場合に向く
fetchのrequest/response modelを維持しつつ、error handling、retry、JSON、認証hookなどの定型処理を共通化したいfrontendやisomorphic JavaScript applicationに適します。
出典:[1]
導入前の確認
2.1.0はNode.js 22以上を要求する
package metadataのengines.nodeは>=22です。browser、Bun、Denoも対象ですが、Node.js backendやSSRで利用する場合はruntime versionを先に確認してください。
出典:[2]
参考にした公式資料
- [1]Ky v2.1.0 README(2026-10-05)
- [2]Ky v2.1.0 package metadata(2026-10-05)
- [3]Ky v2.1.0 release(2026-10-05)
- [4]Ky MIT license(2026-10-05)
編集部からの補足
Ky 2.1.0はNode.js 22以上を要求します。retryは便利ですが、PUTやDELETEなども既定のretry methodに含まれるため、対象APIのidempotencyを確認し、再実行させたくないrequestはretry: {limit: 0}などで明示してください。
3ステップで試す
- 1
Node.js 22以上を確認してKy 2.1.0を導入する
package metadataのengine要件を確認してからreview対象versionを一時projectへ導入します。
node -e "if (Number(process.versions.node.split('.')[0]) < 22) { console.error('Ky 2.1.0 requires Node.js >=22'); process.exit(1); }" && demo=$(mktemp -d "${TMPDIR:-/tmp}/ky.XXXXXX") && cd "$demo" && npm init -y >/dev/null && npm install --save-exact ky@2.1.0 - 2
local HTTP serverへKyでrequestする確認scriptを作る
外部serviceを使わず、fetchベースのrequestとJSON body shortcutをlocal serverで確認します。retryは検証を単純化するため無効にします。
printf "%s\n" "import {createServer} from 'node:http';" "import ky from 'ky';" "const server = createServer((request, response) => { response.setHeader('content-type', 'application/json'); response.end(JSON.stringify({ok: true})); });" "server.listen(0, '127.0.0.1', async () => {" " const address = server.address();" " try {" " const data = await ky.get('http://127.0.0.1:' + address.port + '/', {retry: {limit: 0}}).json();" " if (data.ok !== true) process.exitCode = 1;" " console.log(data);" " } finally { server.close(); }" "});" > demo.mjs - 3
Node.jsでrequestを実行する
Kyがresponseを取得し、
.json()でbodyを解析して返すことを確認します。node demo.mjs
成長
成長の推移 · 直近30日
17,104 Stars
推移データを蓄積中です。
開発アクティビティ
直近90日・週次
- Commit(直近30日)
- 48
- Open PR
- 0
開発アクティビティを蓄積中です。
Built with
カテゴリとタグ
カテゴリ
GitHubデータ
GitHubのデータGitHubの詳細データを見る
GitHub Topics
- fetch
- whatwg-fetch
- http-client
- http-request
- request
- npm-package
- tiny
- json
- rest
- js
- javascript
- Stars
- 17,104
- Forks
- 499
- Watchers
- 64
- Open Issues
- 2
- Contributors
- 120
- 所有者種別
- User
- 主要言語
- TypeScript
- ライセンス
- MIT
- リポジトリ最終更新
- 2026/09/16
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- ofetch5,360 Stars
共通タグ 6件 · 共通カテゴリ 1件 · 同じ言語
Node・browser・workerで同じAPIを使い、fetchへJSON解析・retry・timeout・interceptorを加える
TypeScript - Superstruct7,127 Stars
共通タグ 5件 · 共通カテゴリ 1件 · 同じ言語
小さなstructを組み合わせ、JavaScriptやTypeScriptの入力値を実行時に検証する
TypeScript - io-ts6,814 Stars
共通タグ 5件 · 共通カテゴリ 1件 · 同じ言語
codecで未知の値をdecode・encodeし、同じ定義からTypeScript型を推論する
TypeScript - Runtypes2,699 Stars
共通タグ 5件 · 共通カテゴリ 1件 · 同じ言語
未知の値をcomposableなruntime validatorで検証し、同じ定義からTypeScript型を推論する
TypeScript - Ajv14,850 Stars
共通タグ 4件 · 共通カテゴリ 1件 · 同じ言語
JSON SchemaやJTDをcompileし、API入力や設定値を高速に実行時検証する
TypeScript - openapi-typescript8,391 Stars
共通タグ 4件 · 共通カテゴリ 1件 · 同じ言語
OpenAPI 3.0/3.1の定義から実行時コードを増やさずTypeScript型を生成する
TypeScript
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。