{"adoption": {"forks": 207, "observed_at": "2026-08-28T04:07:25.794673+00:00", "stars": 2854}, "canonical_url": "https://ross.abutalabs.com/products/tollbooth", "card": {"archived": false, "artifact_type": "library", "description": "Simple middleware to rate-limit HTTP requests.", "domain": ["web-development", "backend", "apis", "security"], "enriched": true, "function": ["rate-limiting", "middleware", "http-server"], "health_score": 21, "homepage": null, "language": "Go", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["didip/tollbooth"], "name": "didip/tollbooth", "platform": ["go", "windows", "cross-platform"], "pushed_at": "2025-01-12T17:38:14+00:00", "repo": "didip/tollbooth", "stars": 2854, "tags": ["http-middleware", "throttling", "token-bucket", "api-protection", "linux", "macos"], "topics": [], "urls": [], "use_cases": ["rate limit http requests in go", "protect api from too many requests", "throttle requests by ip address", "add rate limiting middleware to go http server", "limit requests per second per client", "prevent api abuse in go web app"], "what_it_is": "Tollbooth is a Go middleware library for rate-limiting HTTP requests. It supports limiting by remote IP, path, HTTP methods, custom headers, and basic auth usernames, and integrates with standard Go routers.", "when_to_avoid": ["you need distributed rate limiting across multiple instances backed by a shared store like Redis", "you need rate limiting outside of Go or for non-HTTP protocols", "you need advanced quota or billing features beyond simple throttling"], "when_to_choose": ["you need simple, focused HTTP rate limiting in a Go application", "you want to rate-limit by IP, path, method, headers, or basic auth username", "you need a library that works with standard net/http routers and middleware chains"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/tollbooth", "repo": "didip/tollbooth", "role": "main", "score": 33}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.794673+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:36:45.392146+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f7e398b90f01ac0c37c9fb2a0ce2ef43107e9a185d9849869d449afc6d8a9185", "fetched_at": "2026-08-28T04:07:25.794673+00:00", "kind": "readme", "missing": false, "url": "https://github.com/didip/tollbooth"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.794673+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:36:45.392146+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f7e398b90f01ac0c37c9fb2a0ce2ef43107e9a185d9849869d449afc6d8a9185", "fetched_at": "2026-08-28T04:07:25.794673+00:00", "kind": "readme", "missing": false, "url": "https://github.com/didip/tollbooth"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:36:45.392146+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f7e398b90f01ac0c37c9fb2a0ce2ef43107e9a185d9849869d449afc6d8a9185", "fetched_at": "2026-08-28T04:07:25.794673+00:00", "kind": "readme", "missing": false, "url": "https://github.com/didip/tollbooth"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.794673+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.794673+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.794673+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:36:45.392146+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f7e398b90f01ac0c37c9fb2a0ce2ef43107e9a185d9849869d449afc6d8a9185", "fetched_at": "2026-08-28T04:07:25.794673+00:00", "kind": "readme", "missing": false, "url": "https://github.com/didip/tollbooth"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.794673+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.794673+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:36:45.392146+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f7e398b90f01ac0c37c9fb2a0ce2ef43107e9a185d9849869d449afc6d8a9185", "fetched_at": "2026-08-28T04:07:25.794673+00:00", "kind": "readme", "missing": false, "url": "https://github.com/didip/tollbooth"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.794673+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.794673+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.794673+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:36:45.392146+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f7e398b90f01ac0c37c9fb2a0ce2ef43107e9a185d9849869d449afc6d8a9185", "fetched_at": "2026-08-28T04:07:25.794673+00:00", "kind": "readme", "missing": false, "url": "https://github.com/didip/tollbooth"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.794673+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.794673+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:36:45.392146+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f7e398b90f01ac0c37c9fb2a0ce2ef43107e9a185d9849869d449afc6d8a9185", "fetched_at": "2026-08-28T04:07:25.794673+00:00", "kind": "readme", "missing": false, "url": "https://github.com/didip/tollbooth"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:36:45.392146+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f7e398b90f01ac0c37c9fb2a0ce2ef43107e9a185d9849869d449afc6d8a9185", "fetched_at": "2026-08-28T04:07:25.794673+00:00", "kind": "readme", "missing": false, "url": "https://github.com/didip/tollbooth"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:36:45.392146+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f7e398b90f01ac0c37c9fb2a0ce2ef43107e9a185d9849869d449afc6d8a9185", "fetched_at": "2026-08-28T04:07:25.794673+00:00", "kind": "readme", "missing": false, "url": "https://github.com/didip/tollbooth"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:36:45.392146+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f7e398b90f01ac0c37c9fb2a0ce2ef43107e9a185d9849869d449afc6d8a9185", "fetched_at": "2026-08-28T04:07:25.794673+00:00", "kind": "readme", "missing": false, "url": "https://github.com/didip/tollbooth"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 1, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4126, "days_push": 598, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 33, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}