{"id":13554760,"url":"https://github.com/belgattitude/httpx","last_synced_at":"2026-05-05T15:01:36.800Z","repository":{"id":63576647,"uuid":"568871307","full_name":"belgattitude/httpx","owner":"belgattitude","description":"Collection of libs: http exceptions, dsn-parser...","archived":false,"fork":false,"pushed_at":"2026-05-05T06:10:15.000Z","size":44568,"stargazers_count":21,"open_issues_count":12,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-05T08:16:10.548Z","etag":null,"topics":["deno","edge","http-exceptions","node","typescript"],"latest_commit_sha":null,"homepage":"https://belgattitude.github.io/httpx","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/belgattitude.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"belgattitude"}},"created_at":"2022-11-21T15:33:38.000Z","updated_at":"2026-05-05T06:07:29.000Z","dependencies_parsed_at":"2022-11-21T17:52:22.384Z","dependency_job_id":"8a6c4561-b985-42fc-83e9-c527c5234d45","html_url":"https://github.com/belgattitude/httpx","commit_stats":{"total_commits":1644,"total_committers":6,"mean_commits":274.0,"dds":"0.29257907542579076","last_synced_commit":"46a92f665108d64919d0e2f31aaf6b8b5b7a6453"},"previous_names":[],"tags_count":413,"template":false,"template_full_name":null,"purl":"pkg:github/belgattitude/httpx","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/belgattitude%2Fhttpx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/belgattitude%2Fhttpx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/belgattitude%2Fhttpx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/belgattitude%2Fhttpx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/belgattitude","download_url":"https://codeload.github.com/belgattitude/httpx/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/belgattitude%2Fhttpx/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32654618,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-05T11:29:49.557Z","status":"ssl_error","status_checked_at":"2026-05-05T11:29:48.587Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deno","edge","http-exceptions","node","typescript"],"created_at":"2024-08-01T12:02:54.326Z","updated_at":"2026-05-05T15:01:36.761Z","avatar_url":"https://github.com/belgattitude.png","language":"TypeScript","funding_links":["https://github.com/sponsors/belgattitude","https://ko-fi.com/belgattitude"],"categories":["TypeScript"],"sub_categories":[],"readme":"## \"do one thing\" collection.\n\n### [@httpx/lru](https://github.com/belgattitude/httpx/tree/main/packages/lru#readme)\n\nLRU cache optimized for performance and low memory usage. 2x-4x times faster on `get()` than [quick-lru](https://github.com/sindresorhus/quick-lru)\nwithout [memory overhead](https://github.com/sindresorhus/quick-lru?tab=readme-ov-file#trade-offs) and 6 times smaller than\n[lru-cache](https://github.com/isaacs/node-lru-cache). Less than 1Kb.\n\n[![npm](https://img.shields.io/npm/v/@httpx/lru?style=for-the-badge\u0026label=Npm\u0026labelColor=444\u0026color=informational)](https://www.npmjs.com/package/@httpx/lru)\n[![changelog](https://img.shields.io/static/v1?label=\u0026message=changelog\u0026logo=github\u0026style=for-the-badge\u0026labelColor=444\u0026color=informational)](https://github.com/belgattitude/httpx/blob/main/packages/lru/CHANGELOG.md)\n[![codecov](https://img.shields.io/codecov/c/github/belgattitude/httpx?logo=codecov\u0026label=Unit\u0026flag=httpx-lru-unit\u0026style=for-the-badge\u0026labelColor=444)](https://app.codecov.io/gh/belgattitude/httpx/tree/main/packages%2Flru)\n[![bundles](https://img.shields.io/static/v1?label=\u0026message=cjs|esm@treeshake\u0026logo=webpack\u0026style=for-the-badge\u0026labelColor=444\u0026color=informational)](https://github.com/belgattitude/httpx/blob/main/packages/lru/.size-limit.cjs)\n[![downloads](https://img.shields.io/npm/dm/@httpx/lru?style=for-the-badge\u0026labelColor=444)](https://www.npmjs.com/package/@httpx/lru)\n\n### [@httpx/memo-intl](https://github.com/belgattitude/httpx/tree/main/packages/memo-intl#readme)\n\nSpeeds up Intl operations up to 50x. LRU-based memoizer for [Intl.NumberFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat),[Intl.DateFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat)\nand other Intl constructors. Less than 1kb.\n\n[![npm](https://img.shields.io/npm/v/@httpx/memo-intl?style=for-the-badge\u0026label=Npm\u0026labelColor=444\u0026color=informational)](https://www.npmjs.com/package/@httpx/memo-intl)\n[![changelog](https://img.shields.io/static/v1?label=\u0026message=changelog\u0026logo=github\u0026style=for-the-badge\u0026labelColor=444\u0026color=informational)](https://github.com/belgattitude/httpx/blob/main/packages/memo-intl/CHANGELOG.md)\n[![codecov](https://img.shields.io/codecov/c/github/belgattitude/httpx?logo=codecov\u0026label=Unit\u0026flag=httpx-memo-intl-unit\u0026style=for-the-badge\u0026labelColor=444)](https://app.codecov.io/gh/belgattitude/httpx/tree/main/packages%2Fmemo-intl)\n[![bundles](https://img.shields.io/static/v1?label=\u0026message=cjs|esm@treeshake\u0026logo=webpack\u0026style=for-the-badge\u0026labelColor=444\u0026color=informational)](https://github.com/belgattitude/httpx/blob/main/packages/memo-intl/.size-limit.cjs)\n[![downloads](https://img.shields.io/npm/dm/@httpx/memo-intl?style=for-the-badge\u0026labelColor=444)](https://www.npmjs.com/package/@httpx/memo-intl)\n\n### [@httpx/plain-object](https://github.com/belgattitude/httpx/tree/main/packages/plain-object#readme)\n\nFast and lightweight utility functions to check if a value is a plain object.\n\n[![npm](https://img.shields.io/npm/v/@httpx/plain-object?style=for-the-badge\u0026label=Npm\u0026labelColor=444\u0026color=informational)](https://www.npmjs.com/package/@httpx/plain-object)\n[![changelog](https://img.shields.io/static/v1?label=\u0026message=changelog\u0026logo=github\u0026style=for-the-badge\u0026labelColor=444\u0026color=informational)](https://github.com/belgattitude/httpx/blob/main/packages/plain-object/CHANGELOG.md)\n[![codecov](https://img.shields.io/codecov/c/github/belgattitude/httpx?logo=codecov\u0026label=Unit\u0026flag=httpx-plain-object-unit\u0026style=for-the-badge\u0026labelColor=444)](https://app.codecov.io/gh/belgattitude/httpx/tree/main/packages%2Fplain-object)\n[![bundles](https://img.shields.io/static/v1?label=\u0026message=cjs|esm@treeshake\u0026logo=webpack\u0026style=for-the-badge\u0026labelColor=444\u0026color=informational)](https://github.com/belgattitude/httpx/blob/main/packages/plain-object/.size-limit.cjs)\n[![downloads](https://img.shields.io/npm/dm/@httpx/plain-object?style=for-the-badge\u0026labelColor=444)](https://www.npmjs.com/package/@httpx/plain-object)\n\n### [@httpx/exception](https://github.com/belgattitude/httpx/tree/main/packages/exception#readme)\n\nHTTP status errors with default message, instanceof, stack and nested error cause support.\nLightweight, typical usage between [500b and 1300b](https://belgattitude.github.io/httpx/exception#bundle-size).\nIncludes convenience typeguards, optional contextual info and a built-in serializer\nto cover cross-environments challenges (RSC, SSR...).\n\n[![npm](https://img.shields.io/npm/v/@httpx/exception?style=for-the-badge\u0026label=Npm\u0026labelColor=444\u0026color=informational)](https://www.npmjs.com/package/@httpx/exception)\n[![changelog](https://img.shields.io/static/v1?label=\u0026message=changelog\u0026logo=github\u0026style=for-the-badge\u0026labelColor=444\u0026color=informational)](https://github.com/belgattitude/httpx/blob/main/packages/exception/CHANGELOG.md)\n[![codecov](https://img.shields.io/codecov/c/github/belgattitude/httpx?logo=codecov\u0026label=Unit\u0026flag=httpx-exception-unit\u0026style=for-the-badge\u0026labelColor=444)](https://app.codecov.io/gh/belgattitude/httpx/tree/main/packages%2Fexception)\n[![bundles](https://img.shields.io/static/v1?label=\u0026message=cjs|esm@treeshake\u0026logo=webpack\u0026style=for-the-badge\u0026labelColor=444\u0026color=informational)](https://github.com/belgattitude/httpx/blob/main/packages/exception/.size-limit.cjs)\n[![downloads](https://img.shields.io/npm/dm/@httpx/exception?style=for-the-badge\u0026labelColor=444)](https://www.npmjs.com/package/@httpx/exception)\n\n### [@httpx/dsn-parser](https://github.com/belgattitude/httpx/tree/main/packages/dsn-parser#readme)\n\nDSN \u0026 JDBC string parser with query params support in a light and modern package.\n\n[![npm](https://img.shields.io/npm/v/@httpx/dsn-parser?style=for-the-badge\u0026label=Npm\u0026labelColor=444\u0026color=informational)](https://www.npmjs.com/package/@httpx/dsn-parser)\n[![changelog](https://img.shields.io/static/v1?label=\u0026message=changelog\u0026logo=github\u0026style=for-the-badge\u0026labelColor=444\u0026color=informational)](https://github.com/belgattitude/httpx/blob/main/packages/dsn-parser/CHANGELOG.md)\n[![codecov](https://img.shields.io/codecov/c/github/belgattitude/httpx?logo=codecov\u0026label=Unit\u0026flag=httpx-dsn-parser-unit\u0026style=for-the-badge\u0026labelColor=444)](https://app.codecov.io/gh/belgattitude/httpx/tree/main/packages%2Fdsn-parser)\n[![bundles](https://img.shields.io/static/v1?label=\u0026message=cjs|esm@treeshake\u0026logo=webpack\u0026style=for-the-badge\u0026labelColor=444\u0026color=informational)](https://github.com/belgattitude/httpx/blob/main/packages/dsn-parser/.size-limit.cjs)\n[![downloads](https://img.shields.io/npm/dm/@httpx/dsn-parser?style=for-the-badge\u0026labelColor=444)](https://www.npmjs.com/package/@httpx/dsn-parser)\n\n### [@httpx/md5](https://github.com/belgattitude/httpx/tree/main/packages/md5#readme)\n\nOne of the fastest md5 hash function optimized for small strings (\u003c8Kb). Less than 1.2Kb in browser usage.\nAutomatically uses the native crypto module on node, bun for the best performance.\n\n[![npm](https://img.shields.io/npm/v/@httpx/md5?style=for-the-badge\u0026label=Npm\u0026labelColor=444\u0026color=informational)](https://www.npmjs.com/package/@httpx/md5)\n[![changelog](https://img.shields.io/static/v1?label=\u0026message=changelog\u0026logo=github\u0026style=for-the-badge\u0026labelColor=444\u0026color=informational)](https://github.com/belgattitude/httpx/blob/main/packages/md5/CHANGELOG.md)\n[![downloads](https://img.shields.io/npm/dm/@httpx/md5?style=for-the-badge\u0026labelColor=444)](https://www.npmjs.com/package/@httpx/md5)\n\n### [@httpx/treeu](https://github.com/belgattitude/httpx/tree/main/packages/treeu#readme)\n\nFast and lightweight utilities to work with trees.\n\n[![npm](https://img.shields.io/npm/v/@httpx/treeu?style=for-the-badge\u0026label=Npm\u0026labelColor=444\u0026color=informational)](https://www.npmjs.com/package/@httpx/treeu)\n[![changelog](https://img.shields.io/static/v1?label=\u0026message=changelog\u0026logo=github\u0026style=for-the-badge\u0026labelColor=444\u0026color=informational)](https://github.com/belgattitude/httpx/blob/main/packages/treeu/CHANGELOG.md)\n[![codecov](https://img.shields.io/codecov/c/github/belgattitude/httpx?logo=codecov\u0026label=Unit\u0026flag=httpx-treeu-unit\u0026style=for-the-badge\u0026labelColor=444)](https://app.codecov.io/gh/belgattitude/httpx/tree/main/packages%2Ftreeu)\n[![bundles](https://img.shields.io/static/v1?label=\u0026message=cjs|esm@treeshake\u0026logo=webpack\u0026style=for-the-badge\u0026labelColor=444\u0026color=informational)](https://github.com/belgattitude/httpx/blob/main/packages/treeu/.size-limit.cjs)\n[![downloads](https://img.shields.io/npm/dm/@httpx/treeu?style=for-the-badge\u0026labelColor=444)](https://www.npmjs.com/package/@httpx/treeu)\n\n### [@httpx/assert](https://github.com/belgattitude/httpx/tree/main/packages/assert#readme)\n\nLightweight assertions and typeguards starting at [~60b](https://github.com/belgattitude/httpx/tree/main/packages/assert#bundle-size).\n\n[![npm](https://img.shields.io/npm/v/@httpx/assert?style=for-the-badge\u0026label=Npm\u0026labelColor=444\u0026color=informational)](https://www.npmjs.com/package/@httpx/assert)\n[![changelog](https://img.shields.io/static/v1?label=\u0026message=changelog\u0026logo=github\u0026style=for-the-badge\u0026labelColor=444\u0026color=informational)](https://github.com/belgattitude/httpx/blob/main/packages/assert/CHANGELOG.md)\n[![codecov](https://img.shields.io/codecov/c/github/belgattitude/httpx?logo=codecov\u0026label=Unit\u0026flag=httpx-assert-unit\u0026style=for-the-badge\u0026labelColor=444)](https://app.codecov.io/gh/belgattitude/httpx/tree/main/packages%2Fassert)\n[![bundles](https://img.shields.io/static/v1?label=\u0026message=cjs|esm@treeshake\u0026logo=webpack\u0026style=for-the-badge\u0026labelColor=444\u0026color=informational)](https://github.com/belgattitude/httpx/blob/main/packages/assert/.size-limit.cjs)\n[![downloads](https://img.shields.io/npm/dm/@httpx/assert?style=for-the-badge\u0026labelColor=444)](https://www.npmjs.com/package/@httpx/assert)\n\n### [@httpx/stable-hash](https://github.com/belgattitude/httpx/tree/main/packages/stable-hash#readme)\n\nCreate keys or hashes from javascript values, useful for memoization or cache key generation.\n\n[![npm](https://img.shields.io/npm/v/@httpx/stable-hash?style=for-the-badge\u0026label=Npm\u0026labelColor=444\u0026color=informational)](https://www.npmjs.com/package/@httpx/stable-hash)\n[![changelog](https://img.shields.io/static/v1?label=\u0026message=changelog\u0026logo=github\u0026style=for-the-badge\u0026labelColor=444\u0026color=informational)](https://github.com/belgattitude/httpx/blob/main/packages/stable-hash/CHANGELOG.md)\n[![codecov](https://img.shields.io/codecov/c/github/belgattitude/httpx?logo=codecov\u0026label=Unit\u0026flag=httpx-stable-hash-unit\u0026style=for-the-badge\u0026labelColor=444)](https://app.codecov.io/gh/belgattitude/httpx/tree/main/packages%2Fstable-hash)\n[![bundles](https://img.shields.io/static/v1?label=\u0026message=cjs|esm@treeshake\u0026logo=webpack\u0026style=for-the-badge\u0026labelColor=444\u0026color=informational)](https://github.com/belgattitude/httpx/blob/main/packages/stable-hash/.size-limit.cjs)\n[![downloads](https://img.shields.io/npm/dm/@httpx/stable-hash?style=for-the-badge\u0026labelColor=444)](https://www.npmjs.com/package/@httpx/stable-hash)\n\n### [@httpx/compress](https://github.com/belgattitude/httpx/tree/main/packages/compress#readme)\n\nString and Uint8Array compression utilities (gzip)\n\n[![npm](https://img.shields.io/npm/v/@httpx/compress?style=for-the-badge\u0026label=Npm\u0026labelColor=444\u0026color=informational)](https://www.npmjs.com/package/@httpx/compress)\n[![changelog](https://img.shields.io/static/v1?label=\u0026message=changelog\u0026logo=github\u0026style=for-the-badge\u0026labelColor=444\u0026color=informational)](https://github.com/belgattitude/httpx/blob/main/packages/compress/CHANGELOG.md)\n[![codecov](https://img.shields.io/codecov/c/github/belgattitude/httpx?logo=codecov\u0026label=Unit\u0026flag=httpx-compress-unit\u0026style=for-the-badge\u0026labelColor=444)](https://app.codecov.io/gh/belgattitude/httpx/tree/main/packages%2Fcompress)\n[![bundles](https://img.shields.io/static/v1?label=\u0026message=cjs|esm@treeshake\u0026logo=webpack\u0026style=for-the-badge\u0026labelColor=444\u0026color=informational)](https://github.com/belgattitude/httpx/blob/main/packages/compress/.size-limit.cjs)\n[![downloads](https://img.shields.io/npm/dm/@httpx/compress?style=for-the-badge\u0026labelColor=444)](https://www.npmjs.com/package/@httpx/compress)\n\n### [@httpx/encode](https://github.com/belgattitude/httpx/tree/main/packages/encode#readme)\n\nBase encoding\n\n[![npm](https://img.shields.io/npm/v/@httpx/encode?style=for-the-badge\u0026label=Npm\u0026labelColor=444\u0026color=informational)](https://www.npmjs.com/package/@httpx/encode)\n[![changelog](https://img.shields.io/static/v1?label=\u0026message=changelog\u0026logo=github\u0026style=for-the-badge\u0026labelColor=444\u0026color=informational)](https://github.com/belgattitude/httpx/blob/main/packages/encode/CHANGELOG.md)\n[![codecov](https://img.shields.io/codecov/c/github/belgattitude/httpx?logo=codecov\u0026label=Unit\u0026flag=httpx-encode-unit\u0026style=for-the-badge\u0026labelColor=444)](https://app.codecov.io/gh/belgattitude/httpx/tree/main/packages%2Fencode)\n[![bundles](https://img.shields.io/static/v1?label=\u0026message=cjs|esm@treeshake\u0026logo=webpack\u0026style=for-the-badge\u0026labelColor=444\u0026color=informational)](https://github.com/belgattitude/httpx/blob/main/packages/encode/.size-limit.cjs)\n[![downloads](https://img.shields.io/npm/dm/@httpx/encode?style=for-the-badge\u0026labelColor=444)](https://www.npmjs.com/package/@httpx/encode)\n\n## Contributors\n\nContributions are welcome. Take a look to the [CONTRIBUTING](https://github.com/belgattitude/httpx/blob/main/CONTRIBUTING.md) docs or skip and try\n\n```bash\n# make a fork and clone it, then\nyarn install\nyarn g:test-unit\nyarn g:lint\nyarn g:typecheck\n```\n\n## Support\n\nDon't hesitate and open [an issue](https://github.com/belgattitude/httpx/issues).\n\n## Sponsors\n\nIf my OSS work brightens your day, let's take it to new heights together!\n[Sponsor](\u003c[sponsorship](https://github.com/sponsors/belgattitude)\u003e), [coffee](\u003c(https://ko-fi.com/belgattitude)\u003e),\nor star – any gesture of support fuels my passion to improve. Thanks for being awesome! 🙏❤️\n\n### Special thanks to\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://www.jetbrains.com/?ref=belgattitude\" target=\"_blank\"\u003e\n         \u003cimg width=\"65\" src=\"https://asset.brandfetch.io/idarKiKkI-/id53SttZhi.jpeg\" alt=\"Jetbrains logo\" /\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://www.embie.be/?ref=belgattitude\" target=\"_blank\"\u003e\n        \u003cimg width=\"65\" src=\"https://avatars.githubusercontent.com/u/98402122?s=200\u0026v=4\" alt=\"Jetbrains logo\" /\u003e    \n      \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003ca href=\"https://www.jetbrains.com/?ref=belgattitude\" target=\"_blank\"\u003eJetBrains\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003ca href=\"https://www.embie.be/?ref=belgattitude\" target=\"_blank\"\u003eEmbie.be\u003c/a\u003e\n    \u003c/td\u003e\n   \u003c/tr\u003e\n\u003c/table\u003e\n\n## License\n\nMIT © [belgattitude](https://github.com/belgattitude) and contributors.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbelgattitude%2Fhttpx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbelgattitude%2Fhttpx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbelgattitude%2Fhttpx/lists"}