{"adoption": {"forks": 295, "observed_at": "2026-08-28T04:08:10.657221+00:00", "stars": 3570}, "canonical_url": "https://ross.abutalabs.com/products/immutables", "card": {"archived": false, "artifact_type": "library", "description": "Java annotation processor to create immutable objects and builders, for records too. Sweep boilerplate code under the rug!", "domain": ["developer-tools", "programming-languages"], "enriched": true, "function": ["serialization", "developer-tools"], "health_score": 96, "homepage": "http://immutables.org", "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["immutables/immutables"], "name": "immutables/immutables", "platform": ["jvm"], "pushed_at": "2026-07-31T22:02:56+00:00", "repo": "immutables/immutables", "stars": 3570, "tags": ["annotation-processor", "immutable-objects", "builder-pattern", "jackson", "gson", "java-records", "boilerplate-reduction"], "topics": ["java", "annotation-processor", "jackson", "gson", "immutable-objects", "guava", "builder", "immutables", "immutable-datastructures", "immutable-collections", "records"], "urls": [], "use_cases": ["generate builders for java records", "create immutable value objects in java", "reduce boilerplate for data classes", "generate immutable collections wrappers", "jackson serialization for immutable classes", "generate with* copy methods for value objects"], "what_it_is": "A Java annotation processor that generates immutable value classes, builders, and copy-with methods from interfaces, abstract classes, and records. It eliminates boilerplate while supporting Jackson/Gson JSON integration and extensive customization via styles.", "when_to_avoid": ["you use Kotlin or another language with built-in data classes", "you need mutable entities like JPA/Hibernate entities", "your build cannot tolerate annotation processing overhead"], "when_to_choose": ["you want thread-safe immutable data types without hand-writing builders", "you need generated builders for records or abstract value types", "you want JSON (Jackson/Gson) support for immutable models", "you prefer annotation-processor codegen over runtime reflection"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/immutables", "repo": "immutables/immutables", "role": "main", "score": 92}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:10.657221+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:34:07.622613+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "97d907b028f33c16f09374013595a38f7803fd97dac003a280dc7616e81c0097", "fetched_at": "2026-08-28T04:08:10.657221+00:00", "kind": "readme", "missing": false, "url": "https://github.com/immutables/immutables"}, {"content_hash": "bc452f16efafb76a06b78e34ea4051dca54fcfae5d7f11a0521d8b19f01a8d72", "fetched_at": "2026-08-29T09:27:41.112792+00:00", "kind": "homepage", "missing": false, "url": "http://immutables.org"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:10.657221+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:34:07.622613+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "97d907b028f33c16f09374013595a38f7803fd97dac003a280dc7616e81c0097", "fetched_at": "2026-08-28T04:08:10.657221+00:00", "kind": "readme", "missing": false, "url": "https://github.com/immutables/immutables"}, {"content_hash": "bc452f16efafb76a06b78e34ea4051dca54fcfae5d7f11a0521d8b19f01a8d72", "fetched_at": "2026-08-29T09:27:41.112792+00:00", "kind": "homepage", "missing": false, "url": "http://immutables.org"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:34:07.622613+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "97d907b028f33c16f09374013595a38f7803fd97dac003a280dc7616e81c0097", "fetched_at": "2026-08-28T04:08:10.657221+00:00", "kind": "readme", "missing": false, "url": "https://github.com/immutables/immutables"}, {"content_hash": "bc452f16efafb76a06b78e34ea4051dca54fcfae5d7f11a0521d8b19f01a8d72", "fetched_at": "2026-08-29T09:27:41.112792+00:00", "kind": "homepage", "missing": false, "url": "http://immutables.org"}], "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:08:10.657221+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:10.657221+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:10.657221+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:34:07.622613+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "97d907b028f33c16f09374013595a38f7803fd97dac003a280dc7616e81c0097", "fetched_at": "2026-08-28T04:08:10.657221+00:00", "kind": "readme", "missing": false, "url": "https://github.com/immutables/immutables"}, {"content_hash": "bc452f16efafb76a06b78e34ea4051dca54fcfae5d7f11a0521d8b19f01a8d72", "fetched_at": "2026-08-29T09:27:41.112792+00:00", "kind": "homepage", "missing": false, "url": "http://immutables.org"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:10.657221+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:10.657221+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:34:07.622613+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "97d907b028f33c16f09374013595a38f7803fd97dac003a280dc7616e81c0097", "fetched_at": "2026-08-28T04:08:10.657221+00:00", "kind": "readme", "missing": false, "url": "https://github.com/immutables/immutables"}, {"content_hash": "bc452f16efafb76a06b78e34ea4051dca54fcfae5d7f11a0521d8b19f01a8d72", "fetched_at": "2026-08-29T09:27:41.112792+00:00", "kind": "homepage", "missing": false, "url": "http://immutables.org"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:10.657221+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:10.657221+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:10.657221+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:34:07.622613+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "97d907b028f33c16f09374013595a38f7803fd97dac003a280dc7616e81c0097", "fetched_at": "2026-08-28T04:08:10.657221+00:00", "kind": "readme", "missing": false, "url": "https://github.com/immutables/immutables"}, {"content_hash": "bc452f16efafb76a06b78e34ea4051dca54fcfae5d7f11a0521d8b19f01a8d72", "fetched_at": "2026-08-29T09:27:41.112792+00:00", "kind": "homepage", "missing": false, "url": "http://immutables.org"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:10.657221+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:10.657221+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:34:07.622613+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "97d907b028f33c16f09374013595a38f7803fd97dac003a280dc7616e81c0097", "fetched_at": "2026-08-28T04:08:10.657221+00:00", "kind": "readme", "missing": false, "url": "https://github.com/immutables/immutables"}, {"content_hash": "bc452f16efafb76a06b78e34ea4051dca54fcfae5d7f11a0521d8b19f01a8d72", "fetched_at": "2026-08-29T09:27:41.112792+00:00", "kind": "homepage", "missing": false, "url": "http://immutables.org"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:34:07.622613+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "97d907b028f33c16f09374013595a38f7803fd97dac003a280dc7616e81c0097", "fetched_at": "2026-08-28T04:08:10.657221+00:00", "kind": "readme", "missing": false, "url": "https://github.com/immutables/immutables"}, {"content_hash": "bc452f16efafb76a06b78e34ea4051dca54fcfae5d7f11a0521d8b19f01a8d72", "fetched_at": "2026-08-29T09:27:41.112792+00:00", "kind": "homepage", "missing": false, "url": "http://immutables.org"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:34:07.622613+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "97d907b028f33c16f09374013595a38f7803fd97dac003a280dc7616e81c0097", "fetched_at": "2026-08-28T04:08:10.657221+00:00", "kind": "readme", "missing": false, "url": "https://github.com/immutables/immutables"}, {"content_hash": "bc452f16efafb76a06b78e34ea4051dca54fcfae5d7f11a0521d8b19f01a8d72", "fetched_at": "2026-08-29T09:27:41.112792+00:00", "kind": "homepage", "missing": false, "url": "http://immutables.org"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:34:07.622613+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "97d907b028f33c16f09374013595a38f7803fd97dac003a280dc7616e81c0097", "fetched_at": "2026-08-28T04:08:10.657221+00:00", "kind": "readme", "missing": false, "url": "https://github.com/immutables/immutables"}, {"content_hash": "bc452f16efafb76a06b78e34ea4051dca54fcfae5d7f11a0521d8b19f01a8d72", "fetched_at": "2026-08-29T09:27:41.112792+00:00", "kind": "homepage", "missing": false, "url": "http://immutables.org"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 95, "longevity": 100, "rhythm": 84}, "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": 4805, "days_push": 33, "days_rel": 108, "gap_med": 18.0, "n_releases_24m": 11}, "score": 92, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}