{"id":19602340,"url":"https://github.com/scottlamb/http-auth","last_synced_at":"2025-10-26T16:15:32.141Z","repository":{"id":62440266,"uuid":"419473084","full_name":"scottlamb/http-auth","owner":"scottlamb","description":"Rust library for HTTP authentication. Parses challenge lists, responds to Basic and Digest challenges. Likely to be extended with server support and additional auth schemes.","archived":false,"fork":false,"pushed_at":"2023-12-29T18:53:06.000Z","size":237,"stargazers_count":5,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-04-25T08:02:19.955Z","etag":null,"topics":["authentication","digest","http","rust"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/http-auth","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/scottlamb.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE-APACHE.txt","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}},"created_at":"2021-10-20T20:01:32.000Z","updated_at":"2023-09-23T18:53:30.000Z","dependencies_parsed_at":"2024-11-11T09:27:18.564Z","dependency_job_id":"af491928-0905-469d-946d-396d6710e13e","html_url":"https://github.com/scottlamb/http-auth","commit_stats":{"total_commits":28,"total_committers":1,"mean_commits":28.0,"dds":0.0,"last_synced_commit":"7112b855c584c2bae93ca8cea8fcca151bb33f2b"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scottlamb%2Fhttp-auth","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scottlamb%2Fhttp-auth/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scottlamb%2Fhttp-auth/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scottlamb%2Fhttp-auth/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scottlamb","download_url":"https://codeload.github.com/scottlamb/http-auth/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251178005,"owners_count":21548143,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["authentication","digest","http","rust"],"created_at":"2024-11-11T09:23:36.863Z","updated_at":"2025-10-26T16:15:27.088Z","avatar_url":"https://github.com/scottlamb.png","language":"Rust","readme":"[![crates.io](https://img.shields.io/crates/v/http-auth)](https://crates.io/crates/http-auth)\n[![Released API docs](https://docs.rs/http-auth/badge.svg)](https://docs.rs/http-auth/)\n[![CI](https://github.com/scottlamb/http-auth/workflows/CI/badge.svg)](https://github.com/scottlamb/http-auth/actions?query=workflow%3ACI)\n\nRust library for HTTP authentication. Parses challenge lists, responds\nto `Basic` and `Digest` challenges. Likely to be extended with server\nsupport and additional auth schemes.\n\nHTTP authentication is described in the following documents and specifications:\n\n*   [MDN documentation](https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication).\n*   [RFC 7235](https://datatracker.ietf.org/doc/html/rfc7235):\n    Hypertext Transfer Protocol (HTTP/1.1): Authentication.\n*   [RFC 7617](https://datatracker.ietf.org/doc/html/rfc7617):\n    The 'Basic' HTTP Authentication Scheme\n*   [RFC 7616](https://datatracker.ietf.org/doc/html/rfc7616):\n    HTTP Digest Access Authentication\n\nThis framework is primarily used with HTTP, as suggested by the name. It is\nalso used by some other protocols such as RTSP.\n\n## Status\n\nWell-tested, suitable for production. The API may change to improve ergonomics\nand functionality. New functionality is likely to be added. PRs welcome!\n\n## Goals\n\nIn order:\n\n1.  **sound.** Currently no `unsafe` blocks in `http-auth` itself. All\n    dependencies are common, trusted crates.\n2.  **correct.** Precisely implements the specifications except where noted.\n    Fuzz tests verify the hand-written parser never panics and matches a\n    nom-based reference implementation.\n3.  **light-weight.** Minimal dependencies; uses Cargo features so callers can\n    avoid them when undesired. Simple code that minimizes monomorphization\n    bloat. Small data structures; eg `http_auth::DigestClient` currently weighs\n    in at 32 bytes plus one allocation for all string fields.\n4.  **complete.** Implements both parsing and responding to challenges.\n    (Currently only supports the client side and responding to the most common\n    `Basic` and `Digest` schemes; future expansion is likely.)\n5.  **ergonomic.** Creating a client for responding to a password challenge is\n    a one-liner from a string header or a\n    [`http::header::GetAll`](https://docs.rs/http/0.2.5/http/header/struct.GetAll.html).\n6.  **fast enough.** HTTP authentication is a small part of a real program, and\n    `http-auth`'s CPU usage should never be noticeable. For `Digest`'s\n    cryptographic operations, it uses popular optimized crates. In other\n    respects, `http-auth` is likely at least as efficient as other HTTP\n    authentication crates, although I have no reason to believe their\n    performance is problematic.\n\n## Author\n\nScott Lamb \u0026lt;slamb@slamb.org\u003e\n\n## License\n\nSPDX-License-Identifier: [MIT](https://spdx.org/licenses/MIT.html) OR [Apache-2.0](https://spdx.org/licenses/Apache-2.0.html)\n\nSee [LICENSE-MIT.txt](LICENSE-MIT.txt) or [LICENSE-APACHE](LICENSE-APACHE.txt),\nrespectively.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscottlamb%2Fhttp-auth","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscottlamb%2Fhttp-auth","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscottlamb%2Fhttp-auth/lists"}