{"id":525,"name":null,"description":"A Faraday middleware that respects HTTP cache","url":"https://github.com/sourcelevel/faraday-http-cache","last_synced_at":"2026-10-03T08:30:18.845Z","repository":{"id":2410790,"uuid":"3378613","full_name":"sourcelevel/faraday-http-cache","owner":"sourcelevel","description":"A Faraday middleware that respects HTTP cache","archived":false,"fork":false,"pushed_at":"2026-09-15T21:44:49.000Z","size":550,"stargazers_count":346,"open_issues_count":1,"forks_count":89,"subscribers_count":16,"default_branch":"master","last_synced_at":"2026-09-30T19:44:32.900Z","etag":null,"topics":["cache","faraday","http","middleware","ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sourcelevel.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2012-02-07T15:39:38.000Z","updated_at":"2026-09-15T21:44:37.000Z","dependencies_parsed_at":"2026-09-16T07:43:50.231Z","dependency_job_id":null,"html_url":"https://github.com/sourcelevel/faraday-http-cache","commit_stats":{"total_commits":369,"total_committers":41,"mean_commits":9.0,"dds":0.3739837398373984,"last_synced_commit":"3f1bf705c9b6050cf48d382b33bc0ee402012ccd"},"previous_names":["plataformatec/faraday-http-cache"],"tags_count":29,"template":false,"template_full_name":null,"purl":"pkg:github/sourcelevel/faraday-http-cache","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sourcelevel","download_url":"https://codeload.github.com/sourcelevel/faraday-http-cache/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/sbom","scorecard":{"id":737202,"data":{"date":"2025-08-11","repo":{"name":"github.com/sourcelevel/faraday-http-cache","commit":"f44ded4c9f6f794901c97eca1d82eb3ef2d5a5e6"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 8/17 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/lint.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/sourcelevel/faraday-http-cache/lint.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/lint.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/sourcelevel/faraday-http-cache/lint.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/main.yml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/sourcelevel/faraday-http-cache/main.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/main.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/sourcelevel/faraday-http-cache/main.yml/master?enable=pin","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/lint.yml:1","Warn: no topLevel permission defined: .github/workflows/main.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 21 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-22T16:12:37.718Z","repository_id":2410790,"created_at":"2025-08-22T16:12:37.719Z","updated_at":"2025-08-22T16:12:37.719Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":342542704,"owners_count":37926757,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-22T15:14:58.755Z","status":"online","status_checked_at":"2026-10-02T02:00:07.254Z","response_time":104,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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"}},"owner":{"login":"sourcelevel","name":"SourceLevel","uuid":"39925474","kind":"organization","description":"Pull Requests, Collaboration, Teams, Individuals and DORA Metrics. Help teams succeed, improve accountability, check improvement plans.","email":"support@sourcelevel.io","website":"https://sourcelevel.io","location":"United States of America","twitter":"sourcelevelhq","company":null,"icon_url":"https://avatars.githubusercontent.com/u/39925474?v=4","repositories_count":13,"last_synced_at":"2026-10-02T16:42:09.518Z","metadata":{"has_sponsors_listing":false,"funding":null},"html_url":"https://github.com/sourcelevel","funding_links":[],"total_stars":402,"followers":23,"following":0,"created_at":"2022-11-03T09:34:35.819Z","updated_at":"2026-10-02T16:42:10.389Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sourcelevel","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sourcelevel/repositories"},"packages":[{"id":14414074,"name":"github.com/sourcelevel/faraday-http-cache","ecosystem":"go","description":null,"homepage":null,"licenses":"other","normalized_licenses":["Other"],"repository_url":"https://github.com/sourcelevel/faraday-http-cache","keywords_array":[],"namespace":null,"versions_count":28,"first_release_published_at":"2012-12-03T13:23:42.000Z","latest_release_published_at":"2026-09-17T00:40:39.819Z","latest_release_number":"v3.0.0+incompatible","last_synced_at":"2026-10-02T08:00:49.803Z","created_at":"2026-05-09T12:51:12.662Z","updated_at":"2026-10-02T08:00:49.804Z","registry_url":"https://pkg.go.dev/github.com/sourcelevel/faraday-http-cache","install_command":"go get github.com/sourcelevel/faraday-http-cache","documentation_url":"https://pkg.go.dev/github.com/sourcelevel/faraday-http-cache#section-documentation","metadata":{},"repo_metadata":{"id":2410790,"uuid":"3378613","full_name":"sourcelevel/faraday-http-cache","owner":"sourcelevel","description":"A Faraday middleware that respects HTTP cache","archived":false,"fork":false,"pushed_at":"2026-09-15T21:44:49.000Z","size":550,"stargazers_count":346,"open_issues_count":1,"forks_count":89,"subscribers_count":16,"default_branch":"master","last_synced_at":"2026-09-16T19:41:56.254Z","etag":null,"topics":["cache","faraday","http","middleware","ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sourcelevel.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2012-02-07T15:39:38.000Z","updated_at":"2026-09-15T21:44:37.000Z","dependencies_parsed_at":"2026-09-16T07:43:50.231Z","dependency_job_id":null,"html_url":"https://github.com/sourcelevel/faraday-http-cache","commit_stats":{"total_commits":369,"total_committers":41,"mean_commits":9.0,"dds":0.3739837398373984,"last_synced_commit":"3f1bf705c9b6050cf48d382b33bc0ee402012ccd"},"previous_names":["plataformatec/faraday-http-cache"],"tags_count":29,"template":false,"template_full_name":null,"purl":"pkg:github/sourcelevel/faraday-http-cache","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sourcelevel","download_url":"https://codeload.github.com/sourcelevel/faraday-http-cache/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/sbom","scorecard":{"id":737202,"data":{"date":"2025-08-11","repo":{"name":"github.com/sourcelevel/faraday-http-cache","commit":"f44ded4c9f6f794901c97eca1d82eb3ef2d5a5e6"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 8/17 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/lint.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/sourcelevel/faraday-http-cache/lint.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/lint.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/sourcelevel/faraday-http-cache/lint.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/main.yml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/sourcelevel/faraday-http-cache/main.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/main.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/sourcelevel/faraday-http-cache/main.yml/master?enable=pin","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/lint.yml:1","Warn: no topLevel permission defined: .github/workflows/main.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 21 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-22T16:12:37.718Z","repository_id":2410790,"created_at":"2025-08-22T16:12:37.719Z","updated_at":"2025-08-22T16:12:37.719Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":341189360,"owners_count":37376905,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-22T15:14:58.755Z","status":"online","status_checked_at":"2026-09-16T02:00:06.638Z","response_time":96,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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"},"tags":[{"name":"v3.0.0","sha":"a6036a593b0cc0a46a793fce724a1e2bf7d5a6f5","kind":"commit","published_at":"2026-09-15T21:39:33.000Z","download_url":"https://codeload.github.com/sourcelevel/faraday-http-cache/tar.gz/v3.0.0","html_url":"https://github.com/sourcelevel/faraday-http-cache/releases/tag/v3.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/sourcelevel/faraday-http-cache@v3.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v3.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v3.0.0/manifests"},{"name":"v2.8.0","sha":"63f7c8ddff4a343cbfe87cab4e397b82adc0631f","kind":"commit","published_at":"2026-09-15T20:47:43.000Z","download_url":"https://codeload.github.com/sourcelevel/faraday-http-cache/tar.gz/v2.8.0","html_url":"https://github.com/sourcelevel/faraday-http-cache/releases/tag/v2.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/sourcelevel/faraday-http-cache@v2.8.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v2.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v2.8.0/manifests"},{"name":"v2.7.0","sha":"71492262f888e2e6fbe5dd3c975551bd362420d2","kind":"commit","published_at":"2026-04-14T00:16:59.000Z","download_url":"https://codeload.github.com/sourcelevel/faraday-http-cache/tar.gz/v2.7.0","html_url":"https://github.com/sourcelevel/faraday-http-cache/releases/tag/v2.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/sourcelevel/faraday-http-cache@v2.7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v2.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v2.7.0/manifests"},{"name":"v2.6.1","sha":"198a590425b243354038e26b456d00004f1f562d","kind":"tag","published_at":"2026-01-19T23:04:33.000Z","download_url":"https://codeload.github.com/sourcelevel/faraday-http-cache/tar.gz/v2.6.1","html_url":"https://github.com/sourcelevel/faraday-http-cache/releases/tag/v2.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/sourcelevel/faraday-http-cache@v2.6.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v2.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v2.6.1/manifests"},{"name":"v2.6.0","sha":"9227f0c967c739f761bce3c0c2b6e0e58dbe18cb","kind":"tag","published_at":"2026-01-19T22:21:51.000Z","download_url":"https://codeload.github.com/sourcelevel/faraday-http-cache/tar.gz/v2.6.0","html_url":"https://github.com/sourcelevel/faraday-http-cache/releases/tag/v2.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/sourcelevel/faraday-http-cache@v2.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v2.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v2.6.0/manifests"},{"name":"v2.5.0","sha":"d05c59063bbdcc621a9320035872a5fb0822973b","kind":"tag","published_at":"2023-04-27T15:31:54.000Z","download_url":"https://codeload.github.com/sourcelevel/faraday-http-cache/tar.gz/v2.5.0","html_url":"https://github.com/sourcelevel/faraday-http-cache/releases/tag/v2.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/sourcelevel/faraday-http-cache@v2.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v2.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v2.5.0/manifests"},{"name":"v2.4.1","sha":"3f1bf705c9b6050cf48d382b33bc0ee402012ccd","kind":"tag","published_at":"2022-08-08T14:50:28.000Z","download_url":"https://codeload.github.com/sourcelevel/faraday-http-cache/tar.gz/v2.4.1","html_url":"https://github.com/sourcelevel/faraday-http-cache/releases/tag/v2.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/sourcelevel/faraday-http-cache@v2.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v2.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v2.4.1/manifests"},{"name":"v2.4.0","sha":"3eef0f9757faa9a458e8c388bfdd4273af7134e8","kind":"tag","published_at":"2022-06-08T02:56:33.000Z","download_url":"https://codeload.github.com/sourcelevel/faraday-http-cache/tar.gz/v2.4.0","html_url":"https://github.com/sourcelevel/faraday-http-cache/releases/tag/v2.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/sourcelevel/faraday-http-cache@v2.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v2.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v2.4.0/manifests"},{"name":"v2.3.0","sha":"84f279591d761ec2e3f6cd8730025f7a86de7976","kind":"tag","published_at":"2022-05-25T18:45:04.000Z","download_url":"https://codeload.github.com/sourcelevel/faraday-http-cache/tar.gz/v2.3.0","html_url":"https://github.com/sourcelevel/faraday-http-cache/releases/tag/v2.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/sourcelevel/faraday-http-cache@v2.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v2.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v2.3.0/manifests"},{"name":"v2.2.0","sha":"5c055e9129de770ad5d964d86ecb3e2ef447678d","kind":"tag","published_at":"2020-04-13T20:45:21.000Z","download_url":"https://codeload.github.com/sourcelevel/faraday-http-cache/tar.gz/v2.2.0","html_url":"https://github.com/sourcelevel/faraday-http-cache/releases/tag/v2.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/sourcelevel/faraday-http-cache@v2.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v2.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v2.2.0/manifests"},{"name":"v2.1.0","sha":"231ff1c164238b10617b0a3490c912b4bff46264","kind":"tag","published_at":"2020-04-06T20:56:41.000Z","download_url":"https://codeload.github.com/sourcelevel/faraday-http-cache/tar.gz/v2.1.0","html_url":"https://github.com/sourcelevel/faraday-http-cache/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/sourcelevel/faraday-http-cache@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v2.1.0/manifests"},{"name":"v2.0.0","sha":"a2a8aff10f144266b37d8f44a08cf33649ca2993","kind":"tag","published_at":"2016-11-16T10:56:55.000Z","download_url":"https://codeload.github.com/sourcelevel/faraday-http-cache/tar.gz/v2.0.0","html_url":"https://github.com/sourcelevel/faraday-http-cache/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/sourcelevel/faraday-http-cache@v2.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v2.0.0/manifests"},{"name":"v1.3.1","sha":"1a08878023bc5701b7d9c9ffde4d2eb24f08da11","kind":"tag","published_at":"2016-08-12T15:59:08.000Z","download_url":"https://codeload.github.com/sourcelevel/faraday-http-cache/tar.gz/v1.3.1","html_url":"https://github.com/sourcelevel/faraday-http-cache/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/sourcelevel/faraday-http-cache@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"d86cc42b7835b5a13bdeea6c30ce66f50fb16956","kind":"tag","published_at":"2016-03-24T19:20:25.000Z","download_url":"https://codeload.github.com/sourcelevel/faraday-http-cache/tar.gz/v1.3.0","html_url":"https://github.com/sourcelevel/faraday-http-cache/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/sourcelevel/faraday-http-cache@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v1.3.0/manifests"},{"name":"v1.2.2","sha":"ccc6798e60402937d623f9239e0a4bb677735f3e","kind":"tag","published_at":"2015-08-27T19:58:26.000Z","download_url":"https://codeload.github.com/sourcelevel/faraday-http-cache/tar.gz/v1.2.2","html_url":"https://github.com/sourcelevel/faraday-http-cache/releases/tag/v1.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/sourcelevel/faraday-http-cache@v1.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v1.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v1.2.2/manifests"},{"name":"v1.2.0","sha":"ce9c7691b9012e75a80f767eec38680cc23cb82b","kind":"tag","published_at":"2015-08-14T21:53:07.000Z","download_url":"https://codeload.github.com/sourcelevel/faraday-http-cache/tar.gz/v1.2.0","html_url":"https://github.com/sourcelevel/faraday-http-cache/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/sourcelevel/faraday-http-cache@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v1.2.0/manifests"},{"name":"v1.1.1","sha":"a62c91f5ed2a12327a08d67a3f26a3af06a9d472","kind":"tag","published_at":"2015-06-04T18:03:24.000Z","download_url":"https://codeload.github.com/sourcelevel/faraday-http-cache/tar.gz/v1.1.1","html_url":"https://github.com/sourcelevel/faraday-http-cache/releases/tag/v1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/sourcelevel/faraday-http-cache@v1.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v1.1.1/manifests"},{"name":"v1.1.0","sha":"2465ca30d6fa81bce88b540076db7e30d50d9357","kind":"tag","published_at":"2015-04-02T16:45:28.000Z","download_url":"https://codeload.github.com/sourcelevel/faraday-http-cache/tar.gz/v1.1.0","html_url":"https://github.com/sourcelevel/faraday-http-cache/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/sourcelevel/faraday-http-cache@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v1.1.0/manifests"},{"name":"v1.0.1","sha":"a5eacf0937634a81ce3edcceeb6dc816d00cbdb7","kind":"tag","published_at":"2015-01-30T13:43:26.000Z","download_url":"https://codeload.github.com/sourcelevel/faraday-http-cache/tar.gz/v1.0.1","html_url":"https://github.com/sourcelevel/faraday-http-cache/releases/tag/v1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/sourcelevel/faraday-http-cache@v1.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v1.0.1/manifests"},{"name":"v1.0.0","sha":"bb379993a5347001e2cb816b3d5a5d0aa2f36942","kind":"tag","published_at":"2015-01-27T20:10:44.000Z","download_url":"https://codeload.github.com/sourcelevel/faraday-http-cache/tar.gz/v1.0.0","html_url":"https://github.com/sourcelevel/faraday-http-cache/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/sourcelevel/faraday-http-cache@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v1.0.0/manifests"},{"name":"v0.4.2","sha":"51f70c6f73cac14fa2db681cdf0fb5356db7ebed","kind":"tag","published_at":"2014-08-17T23:22:18.000Z","download_url":"https://codeload.github.com/sourcelevel/faraday-http-cache/tar.gz/v0.4.2","html_url":"https://github.com/sourcelevel/faraday-http-cache/releases/tag/v0.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/sourcelevel/faraday-http-cache@v0.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v0.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v0.4.2/manifests"},{"name":"v0.4.1","sha":"fb7a1ddc82515f74f79e50a4bc6e312146b0bb83","kind":"tag","published_at":"2014-06-26T22:35:24.000Z","download_url":"https://codeload.github.com/sourcelevel/faraday-http-cache/tar.gz/v0.4.1","html_url":"https://github.com/sourcelevel/faraday-http-cache/releases/tag/v0.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/sourcelevel/faraday-http-cache@v0.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v0.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v0.4.1/manifests"},{"name":"v0.4.0","sha":"cb9954552892bb4013c3799b75e2eff8904a31ce","kind":"tag","published_at":"2014-01-30T13:43:50.000Z","download_url":"https://codeload.github.com/sourcelevel/faraday-http-cache/tar.gz/v0.4.0","html_url":"https://github.com/sourcelevel/faraday-http-cache/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/sourcelevel/faraday-http-cache@v0.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v0.4.0/manifests"},{"name":"v0.3.0","sha":"5d6b8b1b3a1ee1936310661f88ff6750fc8bdf61","kind":"tag","published_at":"2013-10-09T22:35:46.000Z","download_url":"https://codeload.github.com/sourcelevel/faraday-http-cache/tar.gz/v0.3.0","html_url":"https://github.com/sourcelevel/faraday-http-cache/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/sourcelevel/faraday-http-cache@v0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v0.3.0/manifests"},{"name":"v0.2.1","sha":"f4b6f7abcb2ecb1ea4cf464c903560d5d7761862","kind":"tag","published_at":"2013-06-26T13:23:24.000Z","download_url":"https://codeload.github.com/sourcelevel/faraday-http-cache/tar.gz/v0.2.1","html_url":"https://github.com/sourcelevel/faraday-http-cache/releases/tag/v0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/sourcelevel/faraday-http-cache@v0.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v0.2.1/manifests"},{"name":"v0.2.0","sha":"2f74e5e4290603d7599fe3f4546654572a09bad4","kind":"tag","published_at":"2013-06-03T12:57:00.000Z","download_url":"https://codeload.github.com/sourcelevel/faraday-http-cache/tar.gz/v0.2.0","html_url":"https://github.com/sourcelevel/faraday-http-cache/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/sourcelevel/faraday-http-cache@v0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v0.2.0/manifests"},{"name":"v0.1.1","sha":"6f6207c1bdc188be24eae6a4b69edbbca1f968ef","kind":"tag","published_at":"2012-12-20T21:21:35.000Z","download_url":"https://codeload.github.com/sourcelevel/faraday-http-cache/tar.gz/v0.1.1","html_url":"https://github.com/sourcelevel/faraday-http-cache/releases/tag/v0.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/sourcelevel/faraday-http-cache@v0.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v0.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v0.1.1/manifests"},{"name":"v0.1.0","sha":"0853b9164c5332d840a9210c7f56a16d304847e8","kind":"tag","published_at":"2012-12-03T13:24:07.000Z","download_url":"https://codeload.github.com/sourcelevel/faraday-http-cache/tar.gz/v0.1.0","html_url":"https://github.com/sourcelevel/faraday-http-cache/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/sourcelevel/faraday-http-cache@v0.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v0.1.0/manifests"},{"name":"v0.0.1.dev","sha":"cfcc0bffad3283eee80df6606f5edf6eb204a1c7","kind":"tag","published_at":"2012-11-26T12:35:43.000Z","download_url":"https://codeload.github.com/sourcelevel/faraday-http-cache/tar.gz/v0.0.1.dev","html_url":"https://github.com/sourcelevel/faraday-http-cache/releases/tag/v0.0.1.dev","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/sourcelevel/faraday-http-cache@v0.0.1.dev","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v0.0.1.dev","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/tags/v0.0.1.dev/manifests"}]},"repo_metadata_updated_at":"2026-09-23T06:39:54.364Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":5.080071416441731,"dependent_packages_count":4.759766986501993,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":4.919919201471862},"purl":"pkg:golang/github.com/sourcelevel/faraday-http-cache","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/sourcelevel/faraday-http-cache","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/sourcelevel/faraday-http-cache","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/sourcelevel/faraday-http-cache/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-09-23T03:31:31.884Z","issues_count":43,"pull_requests_count":68,"avg_time_to_close_issue":20659082.57894737,"avg_time_to_close_pull_request":5616704.153846154,"issues_closed_count":38,"pull_requests_closed_count":65,"pull_request_authors_count":43,"issue_authors_count":37,"avg_comments_per_issue":2.627906976744186,"avg_comments_per_pull_request":2.161764705882353,"merged_pull_requests_count":49,"bot_issues_count":4,"bot_pull_requests_count":4,"past_year_issues_count":1,"past_year_pull_requests_count":6,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":595587.3333333334,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":3,"past_year_pull_request_authors_count":4,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":0.0,"past_year_avg_comments_per_pull_request":1.5,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":2,"past_year_merged_pull_requests_count":3,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/issues","maintainers":[{"login":"lucasmazza","count":8,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/lucasmazza"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fsourcelevel%2Ffaraday-http-cache/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fsourcelevel%2Ffaraday-http-cache/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fsourcelevel%2Ffaraday-http-cache/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fsourcelevel%2Ffaraday-http-cache/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fsourcelevel%2Ffaraday-http-cache/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fsourcelevel%2Ffaraday-http-cache/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2539742,"maintainers_count":0,"namespaces_count":852760,"keywords_count":136985,"github":"golang","metadata":{"funded_packages_count":110283,"sync_missing_packages_cursor":{"timestamp":"2026-09-29T00:04:57.155362Z","path":"github.com/virtengine/virtengine/sdk/specs","version":"v0.0.0-20260928231908-c0c887541540"},"rate_limit":5},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2026-10-01T05:04:10.855Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/namespaces"}}],"commits":{"id":19135,"full_name":"sourcelevel/faraday-http-cache","default_branch":"master","total_commits":401,"total_committers":43,"total_bot_commits":3,"total_bot_committers":1,"mean_commits":9.325581395348838,"dds":0.37157107231920194,"past_year_total_commits":26,"past_year_total_committers":4,"past_year_total_bot_commits":3,"past_year_total_bot_committers":1,"past_year_mean_commits":6.5,"past_year_dds":0.23076923076923073,"last_synced_at":"2026-10-02T08:00:51.637Z","last_synced_commit":"0cbb7aa38ecd87aee76ff6753a9a63eeeb4e1b7d","created_at":"2023-03-07T11:40:05.083Z","updated_at":"2026-10-02T08:00:51.505Z","committers":[{"name":"Lucas Mazza","email":"lucas.mazza@plataformatec.com.br","login":"lucasmazza","count":252},{"name":"George Guimarães","email":"george.guimaraes@gmail.com","login":"georgeguimaraes","count":23},{"name":"Rafael Mendonça França","email":"rafael.franca@plataformatec.com.br","login":null,"count":18},{"name":"Jiunn Haur Lim","email":"codex.is.poetry@gmail.com","login":null,"count":9},{"name":"Erich Soares Machado","email":"erichmachado@gmail.com","login":"erichmachado","count":9},{"name":"Gustavo Araujo","email":"garaujodev@gmail.com","login":"garaujodev","count":8},{"name":"Svyatoslav Kryukov","email":"s.g.kryukov@yandex.ru","login":"skryukov","count":8},{"name":"Olle Jonsson","email":"olle.jonsson@gmail.com","login":"olleolleolle","count":7},{"name":"Bernardo Chaves","email":"bernardo.chaves@plataformatec.com.br","login":null,"count":6},{"name":"Charlie Han","email":"charles_han@cable.comcast.com","login":"charliehan","count":5},{"name":"Daniel Schierbeck","email":"dasch@zendesk.com","login":"dasch","count":4},{"name":"Rhett Sutphin","email":"rhett@detailedbalance.net","login":"rsutphin","count":4},{"name":"Erich Kist","email":"erich.kist@plataformatec.com.br","login":null,"count":3},{"name":"Anton Holmgren","email":"me@antonholmgren.com","login":"alksl","count":3},{"name":"Brendan Dahl","email":"dahl.brendan@gmail.com","login":"dahlb","count":3},{"name":"Ethan Dennis","email":"ethanis@github.com","login":"ethanis","count":3},{"name":"github-actions[bot]","email":"41898282+github-actions[bot]","login":"github-actions[bot]","count":3},{"name":"Matthew Hutchinson","email":"matt@hiddenloop.com","login":"matthutchinson","count":2},{"name":"James Cotterill","email":"mail@jamescotterill.co.uk","login":"JamesCotterill","count":2},{"name":"Christian Gregg","email":"c_arlt@hotmail.com","login":"CGA1123","count":2},{"name":"Chris DiMartino","email":"vwchris@gmail.com","login":"cdimartino","count":2},{"name":"Rob","email":"phorque@gmail.com","login":"dwo","count":2},{"name":"Scott Albertson","email":"scott@thoughtbot.com","login":"salbertson","count":2},{"name":"Todd Mazierski","email":"todd@generalassemb.ly","login":null,"count":2},{"name":"Yuki Inoue","email":"inoueyuworks@gmail.com","login":"Yuki-Inoue","count":1},{"name":"Takafumi Yamamoto","email":"bino98@gmail.com","login":"bino98","count":1},{"name":"NickLaMuro","email":"nicklamuro@gmail.com","login":"NickLaMuro","count":1},{"name":"Konstantin Shabanov","email":"mail@etehtsea.me","login":"etehtsea","count":1},{"name":"Andy Shipman","email":"ashipman@housetrip.com","login":null,"count":1},{"name":"Leon Dewey","email":"ldewey@Leons-MacBook-Pro.local","login":null,"count":1},{"name":"Phil Sturgeon","email":"me@philsturgeon.uk","login":null,"count":1},{"name":"Tim Cheadle","email":"timc@generalassemb.ly","login":null,"count":1},{"name":"Jon Burgess","email":"jkburges@gmail.com","login":"jkburges","count":1},{"name":"Jean Boussier","email":"jean.boussier@gmail.com","login":"byroot","count":1},{"name":"Jan Stastny","email":"honza@stastnarodina.com","login":"jstastny","count":1},{"name":"Ismael Celis","email":"ismaelct@gmail.com","login":"ismasan","count":1},{"name":"Evan Raffel","email":"evman182","login":"evman182","count":1},{"name":"Edouard CHIN","email":"chin.edouard@gmail.com","login":"Edouard-chin","count":1},{"name":"Chris Beer","email":"cabeer@stanford.edu","login":"cbeer","count":1},{"name":"Brent Snook","email":"brent@fuglylogic.com","login":"brentsnook","count":1},{"name":"Andrew Marshall","email":"andrew@johnandrewmarshall.com","login":"amarshall","count":1},{"name":"Alex Handley","email":"alex@seriousfox.co.uk","login":"alex-handley","count":1},{"name":"Adam Lett","email":"adamlett@gmail.com","login":"KaptajnKold","count":1}],"past_year_committers":[{"name":"George Guimarães","email":"george.guimaraes@gmail.com","login":"georgeguimaraes","count":20},{"name":"github-actions[bot]","email":"41898282+github-actions[bot]","login":"github-actions[bot]","count":3},{"name":"Matthew Hutchinson","email":"matt@hiddenloop.com","login":"matthutchinson","count":2},{"name":"Edouard CHIN","email":"chin.edouard@gmail.com","login":"Edouard-chin","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-10-03T00:00:07.787Z","repositories_count":8041324,"commits_count":1223116372,"contributors_count":55905974,"owners_count":1680225,"committers_count":3719882,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"sourcelevel/faraday-http-cache","html_url":"https://github.com/sourcelevel/faraday-http-cache","last_synced_at":"2026-10-02T08:00:44.290Z","status":null,"issues_count":43,"pull_requests_count":68,"avg_time_to_close_issue":20659082.57894737,"avg_time_to_close_pull_request":5662089.863636363,"issues_closed_count":38,"pull_requests_closed_count":66,"pull_request_authors_count":43,"issue_authors_count":37,"avg_comments_per_issue":2.627906976744186,"avg_comments_per_pull_request":2.161764705882353,"merged_pull_requests_count":49,"bot_issues_count":4,"bot_pull_requests_count":4,"past_year_issues_count":1,"past_year_pull_requests_count":6,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":2599730.75,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":4,"past_year_pull_request_authors_count":4,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":0.0,"past_year_avg_comments_per_pull_request":1.5,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":2,"past_year_merged_pull_requests_count":3,"created_at":"2023-05-12T10:37:33.452Z","updated_at":"2026-10-02T08:00:44.290Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcelevel%2Ffaraday-http-cache/issues","issue_labels_count":{},"pull_request_labels_count":{"dependencies":2,"autorelease: tagged":1,"autorelease: pending":1},"issue_author_associations_count":{"NONE":35,"CONTRIBUTOR":6,"COLLABORATOR":2},"pull_request_author_associations_count":{"CONTRIBUTOR":48,"NONE":14,"COLLABORATOR":6},"issue_authors":{"dependabot-preview[bot]":4,"lucasmazza":2,"teamon":2,"gottfrois":2,"dwo":1,"tarebyte":1,"minad":1,"salbertson":1,"dobbymoodge":1,"CarlosBoix":1,"apteryks":1,"joshuacronemeyer":1,"evman182":1,"jjb":1,"jstastny":1,"mjobin-mdsol":1,"ghosalmartin":1,"gmontard":1,"schopenhauer":1,"bino98":1,"tjwallace":1,"lukesutton":1,"KaptajnKold":1,"kevinjalbert":1,"ybiquitous":1,"casperisfine":1,"Physium":1,"kazjote":1,"aminbenselim":1,"miccheng":1,"kookster":1,"mityakoval":1,"cgagon":1,"monfresh":1,"ekremkaraca":1,"mingleiwang":1,"jlecour":1},"pull_request_authors":{"olleolleolle":7,"lucasmazza":6,"skryukov":5,"dasch":4,"github-actions[bot]":2,"charliehan":2,"dependabot-preview[bot]":2,"toddmazierski":2,"dwo":2,"JamesCotterill":2,"matthutchinson":2,"ismasan":1,"timcheadle":1,"etehtsea":1,"jkburges":1,"skylar-anderson":1,"bino98":1,"SAY-5":1,"alksl":1,"cbeer":1,"evman182":1,"jstastny":1,"jimjh":1,"mjobin-mdsol":1,"NickLaMuro":1,"Vichugo1995":1,"Yuki-Inoue":1,"chrisface":1,"cdimartino":1,"ybiquitous":1,"ethanis":1,"ryuichi7":1,"pschambacher":1,"tjwallace":1,"KaptajnKold":1,"casperisfine":1,"mrship":1,"philsturgeon":1,"cgagon":1,"CGA1123":1,"Edouard-chin":1,"salbertson":1,"vkill":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-10-03T00:00:07.720Z","repositories_count":17763945,"issues_count":47393368,"pull_requests_count":147237672,"authors_count":11906542,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{"autorelease: pending":1,"autorelease: tagged":1},"past_year_issue_author_associations_count":{"NONE":1},"past_year_pull_request_author_associations_count":{"CONTRIBUTOR":5,"NONE":1},"past_year_issue_authors":{"aminbenselim":1},"past_year_pull_request_authors":{"github-actions[bot]":2,"matthutchinson":2,"Edouard-chin":1,"SAY-5":1},"maintainers":[{"login":"lucasmazza","count":8,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/lucasmazza"}],"active_maintainers":[]},"events":{"total":{"CreateEvent":1,"ForkEvent":1,"IssueCommentEvent":5,"IssuesEvent":3,"PullRequestEvent":9,"PushEvent":7,"ReleaseEvent":3,"WatchEvent":6},"last_year":{"CreateEvent":1,"IssueCommentEvent":5,"IssuesEvent":3,"PullRequestEvent":9,"PushEvent":7,"ReleaseEvent":3,"WatchEvent":2}},"keywords":["cache","faraday","http","middleware","ruby"],"dependencies":[{"ecosystem":"rubygems","filepath":"Gemfile","sha":null,"kind":"manifest","created_at":"2022-08-06T12:15:18.967Z","updated_at":"2022-08-06T12:15:18.967Z","repository_link":"https://github.com/sourcelevel/faraday-http-cache/blob/master/Gemfile","dependencies":[{"id":584943195,"package_name":"faraday_middleware","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":584943196,"package_name":"faraday-em_http","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":584943197,"package_name":"activesupport","ecosystem":"rubygems","requirements":"\u003e= 5.0","direct":true,"kind":"runtime","optional":false},{"id":584943198,"package_name":"em-http-request","ecosystem":"rubygems","requirements":"~\u003e 1.1","direct":true,"kind":"runtime","optional":false},{"id":584943199,"package_name":"rake","ecosystem":"rubygems","requirements":"~\u003e 13.0","direct":true,"kind":"runtime","optional":false},{"id":584943200,"package_name":"rspec","ecosystem":"rubygems","requirements":"~\u003e 3.1","direct":true,"kind":"runtime","optional":false},{"id":584943201,"package_name":"sinatra","ecosystem":"rubygems","requirements":"~\u003e 2.0","direct":true,"kind":"runtime","optional":false},{"id":584943202,"package_name":"webrick","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"rubygems","filepath":"faraday-http-cache.gemspec","sha":null,"kind":"manifest","created_at":"2022-08-06T12:15:19.099Z","updated_at":"2022-08-06T12:15:19.099Z","repository_link":"https://github.com/sourcelevel/faraday-http-cache/blob/master/faraday-http-cache.gemspec","dependencies":[{"id":584943258,"package_name":"faraday","ecosystem":"rubygems","requirements":"\u003e= 0.8","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/lint.yml","sha":null,"kind":"manifest","created_at":"2023-07-11T00:32:06.105Z","updated_at":"2023-07-11T00:32:06.105Z","repository_link":"https://github.com/sourcelevel/faraday-http-cache/blob/master/.github/workflows/lint.yml","dependencies":[{"id":11309370418,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":11309370422,"package_name":"ruby/setup-ruby","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/main.yml","sha":null,"kind":"manifest","created_at":"2023-07-11T00:32:06.865Z","updated_at":"2023-07-11T00:32:06.865Z","repository_link":"https://github.com/sourcelevel/faraday-http-cache/blob/master/.github/workflows/main.yml","dependencies":[{"id":11309374985,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":11309374986,"package_name":"ruby/setup-ruby","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/release-please.yml","sha":null,"kind":"manifest","created_at":"2026-09-16T07:43:50.051Z","updated_at":"2026-09-16T07:43:50.051Z","repository_link":"https://github.com/sourcelevel/faraday-http-cache/blob/master/.github/workflows/release-please.yml","dependencies":[{"id":26516369645,"package_name":"googleapis/release-please-action","ecosystem":"actions","requirements":"v5","direct":true,"kind":"composite","optional":false},{"id":26516369646,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v7","direct":true,"kind":"composite","optional":false},{"id":26516369647,"package_name":"ruby/setup-ruby","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":26516369648,"package_name":"rubygems/release-gem","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false}]}],"score":null,"created_at":"2024-12-15T21:38:08.258Z","updated_at":"2026-10-03T08:30:18.847Z","avatar_url":"https://github.com/sourcelevel.png","language":"Ruby","monthly_downloads":0,"readme":"# Faraday Http Cache\n\n[![Gem Version](https://badge.fury.io/rb/faraday-http-cache.svg)](https://rubygems.org/gems/faraday-http-cache)\n[![Build](https://github.com/sourcelevel/faraday-http-cache/actions/workflows/main.yml/badge.svg)](https://github.com/sourcelevel/faraday-http-cache/actions)\n\nA [Faraday](https://github.com/lostisland/faraday) middleware that respects HTTP cache,\nby checking expiration and validation of the stored responses.\n\n## Installation\n\nAdd it to your Gemfile:\n\n```ruby\ngem 'faraday-http-cache'\n```\n\n## Usage and configuration\n\nYou have to use the middleware in the Faraday instance that you want to,\nalong with a suitable `store` to cache the responses. You can use the new\nshortcut using a symbol or passing the middleware class\n\n```ruby\nclient = Faraday.new do |builder|\n  builder.use :http_cache, store: Rails.cache\n  # or\n  builder.use Faraday::HttpCache, store: Rails.cache\n\n  builder.adapter Faraday.default_adapter\nend\n```\n\nThe middleware accepts a `store` option for the cache backend responsible for recording\nthe API responses that should be stored. Stores should respond to `write`, `read` and `delete`,\njust like an object from the `ActiveSupport::Cache` API.\n\n```ruby\n# Connect the middleware to a Memcache instance.\nstore = ActiveSupport::Cache.lookup_store(:mem_cache_store, ['localhost:11211'])\n\nclient = Faraday.new do |builder|\n  builder.use :http_cache, store: store\n  builder.adapter Faraday.default_adapter\nend\n\n# Or use the Rails.cache instance inside your Rails app.\nclient = Faraday.new do |builder|\n  builder.use :http_cache, store: Rails.cache\n  builder.adapter Faraday.default_adapter\nend\n```\nThe default store provided is a simple in memory cache that lives on the client instance.\nThis type of store **might not be persisted across multiple processes or connection instances**\nso it is probably not suitable for most production environments.\nMake sure that you configure a store that is suitable for you.\n\nThe stdlib `JSON` module is used for serialization by default, which can struggle with unicode\ncharacters in responses in Ruby \u003c 3.1. For example, if your JSON returns `\"name\": \"Raül\"` then\nyou might see errors like:\n\n```\nResponse could not be serialized: \"\\xC3\" from ASCII-8BIT to UTF-8. Try using Marshal to serialize.\n```\n\nFor full unicode support, or if you expect to be dealing with images, you can use another json\nlibrary like `oj` or `yajl-ruby`, or the stdlib [Marshal][marshal]. Only pick Marshal when you fully\ntrust the cache store: `Marshal.load` will instantiate any object found in the data, while the\ndefault `JSON` serializer parses entries into plain hashes and never instantiates classes.\n\n```ruby\nclient = Faraday.new do |builder|\n  builder.use :http_cache, store: Rails.cache, serializer: Marshal\n  builder.adapter Faraday.default_adapter\nend\n```\n\n### Stale-While-Revalidate and background refresh hooks\n\nThe middleware supports `stale-while-revalidate` directives from the `Cache-Control` header.\nWhen a cached response is stale but still inside the `stale-while-revalidate` window, the middleware\nwill serve the stale response immediately.\n\nYou can provide an `:on_stale` callback to trigger your own asynchronous refresh logic:\n\n```ruby\nclient = Faraday.new do |builder|\n  builder.use :http_cache,\n    store: Rails.cache,\n    on_stale: lambda { |request:, env:, cached_response:|\n      RefreshApiCacheJob.perform_later(request.url.to_s)\n    }\n  builder.adapter Faraday.default_adapter\nend\n```\n\nThe callback receives:\n\n- `request`: `Faraday::HttpCache::Request`\n- `env`: current `Faraday::Env`\n- `cached_response`: `Faraday::HttpCache::Response`\n\n### Strategies\n\nYou can provide a `:strategy` option to the middleware to specify the strategy to use.\n\n```ruby\nclient = Faraday.new do |builder|\n  builder.use :http_cache, store: Rails.cache, strategy: Faraday::HttpCache::Strategies::ByVary\n  builder.adapter Faraday.default_adapter\nend\n```\n\nAvailable strategies are:\n\n#### `Faraday::HttpCache::Strategies::ByUrl`\n\nThe default strategy.\nIt Uses URL + HTTP method to generate cache keys and stores an array of request + response for each key.\n\n#### `Faraday::HttpCache::Strategies::ByVary`\n\nThis strategy uses headers from `Vary` header to generate cache keys.\nIt also uses cache to store `Vary` headers mapped to the request URL.\nThis strategy is more suitable for caching private responses with the same URLs but different results for different users, like `https://api.github.com/user`.\n\n*Note:* To automatically remove stale cache keys, you might want to use the `:expires_in` option.\n\n```ruby\nstore = ActiveSupport::Cache.lookup_store(:redis_cache_store, expires_in: 1.day, url: 'redis://localhost:6379/0')\nclient = Faraday.new do |builder|\n  builder.use :http_cache, store: store, strategy: Faraday::HttpCache::Strategies::ByVary\n  builder.adapter Faraday.default_adapter\nend\n```\n\n#### Custom strategies\n\nYou can write your own strategy by subclassing `Faraday::HttpCache::Strategies::BaseStrategy` and implementing `#write`, `#read` and `#delete` methods.\n\n### Logging\n\nYou can provide a `:logger` option that will receive debug information based on the middleware\noperations:\n\n```ruby\nclient = Faraday.new do |builder|\n  builder.use :http_cache, store: Rails.cache, logger: Rails.logger\n  builder.adapter Faraday.default_adapter\nend\n\nclient.get('https://site/api/users')\n# logs \"HTTP Cache: [GET users] miss, store\"\n```\n\n### Instrumentation\n\nIn addition to logging you can instrument the middleware by passing in an `:instrumenter` option\nsuch as ActiveSupport::Notifications (compatible objects are also allowed).\n\nThe event `http_cache.faraday` will be published every time the middleware\nprocesses a request. In the event payload, `:env` contains the response Faraday env and\n`:cache_status` contains a Symbol indicating the status of the cache processing for that request:\n\n- `:unacceptable` means that the request did not go through the cache at all.\n- `:miss` means that no cached response could be found.\n- `:invalid` means that the cached response could not be validated against the server.\n- `:valid` means that the cached response *could* be validated against the server.\n- `:fresh` means that the cached response was still fresh and could be returned without even\n  calling the server.\n- `:stale` means that the cached response was stale, but served while inside\n  `stale-while-revalidate` window.\n\n```ruby\nclient = Faraday.new do |builder|\n  builder.use :http_cache, store: Rails.cache, instrumenter: ActiveSupport::Notifications\n  builder.adapter Faraday.default_adapter\nend\n\n# Subscribes to all events from Faraday::HttpCache.\nActiveSupport::Notifications.subscribe \"http_cache.faraday\" do |*args|\n  event = ActiveSupport::Notifications::Event.new(*args)\n  cache_status = event.payload[:cache_status]\n  statsd = Statsd.new\n\n  case cache_status\n  when :fresh, :valid, :stale\n    statsd.increment('api-calls.cache_hits')\n  when :invalid, :miss\n    statsd.increment('api-calls.cache_misses')\n  when :unacceptable\n    statsd.increment('api-calls.cache_bypass')\n  end\nend\n```\n\n## See it live\n\nYou can clone this repository, install its dependencies with Bundler (run `bundle install`) and\nexecute the files under the `examples` directory to see a sample of the middleware usage.\nFor stale-while-revalidate behavior with `:on_stale`, see `examples/stale_while_revalidate.rb`.\n\n## What gets cached?\n\nThe middleware will use the following headers to make caching decisions:\n- Vary\n- Cache-Control\n- Age\n- Last-Modified\n- ETag\n- Expires\n\n### Cache-Control\n\nThe `max-age`, `must-revalidate`, `proxy-revalidate`, `s-maxage` and\n`stale-while-revalidate` directives are checked.\n\n### Shared vs. non-shared caches\n\nBy default, the middleware acts as a \"shared cache\" per RFC 9111. This means it does not cache\nresponses with `Cache-Control: private`, and it only stores and reuses responses to requests that\ncarried an `Authorization` header when the response explicitly allows it with `public`,\n`must-revalidate` or `s-maxage` (RFC 9111 section 3.5). This behavior can be changed by passing in\nthe `:shared_cache` configuration option:\n\n```ruby\nclient = Faraday.new do |builder|\n  builder.use :http_cache, shared_cache: false\n  builder.adapter Faraday.default_adapter\nend\n\nclient.get('https://site/api/some-private-resource') # =\u003e will be cached\n```\n\n## License\n\nCopyright (c) 2012-2018 Plataformatec.\nCopyright (c) 2019 SourceLevel and contributors.\n\n  [marshal]: https://www.ruby-doc.org/core-3.0/Marshal.html\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["activerecord","rubygem","mvc","activejob","feature-flag","data-validation","ruby-gem","rack","octokit-rb","github-api"],"project_url":"https://ruby.ecosyste.ms/api/v1/projects/525","html_url":"https://ruby.ecosyste.ms/projects/525"}