{"id":37112508,"url":"https://github.com/ifnotnil/httpx","last_synced_at":"2026-01-14T13:18:26.731Z","repository":{"id":275497365,"uuid":"926237982","full_name":"ifnotnil/httpx","owner":"ifnotnil","description":"golang http compress, log and utils","archived":false,"fork":false,"pushed_at":"2025-04-16T06:31:38.000Z","size":440,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-04-16T08:09:33.943Z","etag":null,"topics":["go","golang","http","utils"],"latest_commit_sha":null,"homepage":"","language":"Go","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/ifnotnil.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"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}},"created_at":"2025-02-02T21:33:38.000Z","updated_at":"2025-04-16T06:31:39.000Z","dependencies_parsed_at":"2025-03-03T21:23:21.871Z","dependency_job_id":"382b4aeb-6fde-43aa-bb3d-f3d0f246fa4a","html_url":"https://github.com/ifnotnil/httpx","commit_stats":null,"previous_names":["ifnotnil/httpx"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ifnotnil/httpx","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ifnotnil%2Fhttpx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ifnotnil%2Fhttpx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ifnotnil%2Fhttpx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ifnotnil%2Fhttpx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ifnotnil","download_url":"https://codeload.github.com/ifnotnil/httpx/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ifnotnil%2Fhttpx/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28420996,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T10:47:48.104Z","status":"ssl_error","status_checked_at":"2026-01-14T10:46:19.031Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["go","golang","http","utils"],"created_at":"2026-01-14T13:18:26.002Z","updated_at":"2026-01-14T13:18:26.706Z","avatar_url":"https://github.com/ifnotnil.png","language":"Go","readme":"# httpx\n[![CI](https://github.com/ifnotnil/httpx/actions/workflows/ci.yml/badge.svg)](https://github.com/ifnotnil/httpx/actions/workflows/ci.yml)\n[![codecov](https://codecov.io/gh/ifnotnil/httpx/graph/badge.svg?token=ljmo2kgqR6)](https://codecov.io/gh/ifnotnil/httpx)[![Go Report Card](https://goreportcard.com/badge/github.com/ifnotnit/httpx)](https://goreportcard.com/report/github.com/ifnotnit/httpx)\n[![PkgGoDev](https://pkg.go.dev/badge/github.com/ifnotnit/httpx)](https://pkg.go.dev/github.com/ifnotnit/httpx)\n\n## httpx/compress\nHttp middleware (inbound - todo) and RoundTripper (outbound) that handles compression (br.deflate,gzip,zstd).\n\n\n## httpx/log\nHttp middleware (inbound) and RoundTripper (outbound) using slog.\n\n### Inbound Logger (http middleware)\n\nInbound logger middleware (http handler) can be initialized with\n\n#### A logger ([WithLogger](log/logger.go#L7))\nThe logger that is set with this function is the logger will be used to log the traffic. If no logger is set the `slog.Default()` will be used.\n\n#### A level ([WithLogInLevel](log/logger.go#L11))\nThe level that is set with this function is the log level in which the middleware will log the traffic.\nDefault value: `slog.LevelDebug`.\n\n#### A log mode ([WithMode](log/logger.go#L15))\nThe log mode can take two values `Drain` and `Tee`.\n  * When `Drain` is selected the body of the income request is read entirely upon receiving and a copy of the body will be passed to the next http handlers.\n  * When `Tee` is selected a tee reader wraps incoming request's body and then the request is passed to the next http handlers. The request body will be read when (and only) the next (or final) http handlers, read it.\nDefault value: `Drain`.\n\n#### A log policy ([WithLogPolicy](log/logger.go#L19))\nThe log policy can indicate conditions\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fifnotnil%2Fhttpx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fifnotnil%2Fhttpx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fifnotnil%2Fhttpx/lists"}