{"adoption": {"forks": 185, "observed_at": "2026-08-28T04:04:51.984831+00:00", "stars": 1487}, "canonical_url": "https://ross.abutalabs.com/products/protoreflect", "card": {"archived": false, "artifact_type": "library", "description": "Reflection (Rich Descriptors) for Go Protocol Buffers", "domain": ["developer-tools", "apis", "backend"], "enriched": true, "function": ["serialization", "developer-tools", "parser"], "health_score": 94, "homepage": null, "language": "Go", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["jhump/protoreflect"], "name": "jhump/protoreflect", "platform": ["go", "cross-platform"], "pushed_at": "2026-07-29T15:52:52+00:00", "repo": "jhump/protoreflect", "stars": 1487, "tags": ["protobuf", "grpc", "reflection", "descriptors", "proto-source-printing"], "topics": ["golang", "protocol-buffers", "protobuf", "grpc", "reflection", "go"], "urls": [], "use_cases": ["inspect protobuf message descriptors at runtime in Go", "generate .proto source files from descriptors programmatically", "build valid protobuf descriptor trees without hand-crafting protos", "implement gRPC server reflection or query it from clients", "dynamically work with protobuf messages without generated code"], "what_it_is": "A Go library providing rich reflection utilities for Protocol Buffers descriptors and gRPC, building on the standard protobuf Go runtime reflection APIs. It includes packages for printing descriptors back to .proto source, programmatically building descriptors, and gRPC reflection support.", "when_to_avoid": ["you only need basic protobuf serialization with generated code", "you're not working in Go", "you need a stable v2 API before its final release"], "when_to_choose": ["you need richer descriptor manipulation than the standard protobuf Go runtime offers", "you want to print or generate .proto files programmatically", "you're building gRPC tooling that relies on reflection"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/protoreflect", "repo": "jhump/protoreflect", "role": "main", "score": 75}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.984831+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:33:48.082419+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "974f9c3e9fe271b340f88cd7433fb700b40a854e242a1704bd127706dab28fac", "fetched_at": "2026-08-28T04:04:51.984831+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jhump/protoreflect"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.984831+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:33:48.082419+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "974f9c3e9fe271b340f88cd7433fb700b40a854e242a1704bd127706dab28fac", "fetched_at": "2026-08-28T04:04:51.984831+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jhump/protoreflect"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:33:48.082419+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "974f9c3e9fe271b340f88cd7433fb700b40a854e242a1704bd127706dab28fac", "fetched_at": "2026-08-28T04:04:51.984831+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jhump/protoreflect"}], "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:04:51.984831+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.984831+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.984831+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:33:48.082419+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "974f9c3e9fe271b340f88cd7433fb700b40a854e242a1704bd127706dab28fac", "fetched_at": "2026-08-28T04:04:51.984831+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jhump/protoreflect"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.984831+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.984831+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:33:48.082419+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "974f9c3e9fe271b340f88cd7433fb700b40a854e242a1704bd127706dab28fac", "fetched_at": "2026-08-28T04:04:51.984831+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jhump/protoreflect"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.984831+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.984831+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.984831+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:33:48.082419+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "974f9c3e9fe271b340f88cd7433fb700b40a854e242a1704bd127706dab28fac", "fetched_at": "2026-08-28T04:04:51.984831+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jhump/protoreflect"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.984831+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.984831+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:33:48.082419+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "974f9c3e9fe271b340f88cd7433fb700b40a854e242a1704bd127706dab28fac", "fetched_at": "2026-08-28T04:04:51.984831+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jhump/protoreflect"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:33:48.082419+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "974f9c3e9fe271b340f88cd7433fb700b40a854e242a1704bd127706dab28fac", "fetched_at": "2026-08-28T04:04:51.984831+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jhump/protoreflect"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:33:48.082419+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "974f9c3e9fe271b340f88cd7433fb700b40a854e242a1704bd127706dab28fac", "fetched_at": "2026-08-28T04:04:51.984831+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jhump/protoreflect"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:33:48.082419+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "974f9c3e9fe271b340f88cd7433fb700b40a854e242a1704bd127706dab28fac", "fetched_at": "2026-08-28T04:04:51.984831+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jhump/protoreflect"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 95, "longevity": 100, "rhythm": 34}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3488, "days_push": 35, "days_rel": 225, "gap_med": 502, "n_releases_24m": 2}, "score": 75, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}