{"adoption": {"forks": 211, "observed_at": "2026-08-28T04:07:32.237640+00:00", "stars": 2957}, "canonical_url": "https://ross.abutalabs.com/products/equinox", "card": {"archived": false, "artifact_type": "library", "description": "Elegant easy-to-use neural networks + scientific computing in JAX. https://docs.kidger.site/equinox/", "domain": ["deep-learning", "machine-learning", "artificial-intelligence", "data-science"], "enriched": true, "function": ["machine-learning", "deep-learning", "llm-training"], "health_score": 96, "homepage": null, "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "stable", "member_repos": ["patrick-kidger/equinox"], "name": "patrick-kidger/equinox", "platform": ["python", "cross-platform"], "pushed_at": "2026-08-10T10:52:15+00:00", "repo": "patrick-kidger/equinox", "stars": 2957, "tags": ["jax", "neural-networks", "pytrees", "pytorch-like-api", "scientific-computing", "filtered-transformations", "gpu"], "topics": ["deep-learning", "jax", "neural-networks", "equinox"], "urls": [], "use_cases": ["build neural networks in JAX with PyTorch-like syntax", "define models that pass smoothly across jit/grad/vmap boundaries", "manipulate PyTrees and filter parameters in JAX transformations", "train CNNs or other models on datasets like MNIST", "replace Flax or Haiku with a simpler model-building approach", "do scientific computing and differentiable programming in JAX"], "what_it_is": "Equinox is a Python library providing neural networks and scientific computing utilities for JAX, using PyTorch-like class-based syntax where models are registered as PyTrees. It includes filtered API transformations, PyTree manipulation routines, and advanced features like runtime errors, all fully interoperable with the rest of the JAX ecosystem.", "when_to_avoid": ["you are not using JAX (e.g. you want PyTorch or TensorFlow)", "you need a full training framework with built-in trainers and data loaders", "you rely on ecosystem tooling specific to Flax or Haiku"], "when_to_choose": ["you use JAX and want an elegant, PyTorch-like way to define models", "you need models that are plain PyTrees compatible with all JAX transformations", "you want filtered transformations and advanced features like runtime errors", "you find Flax or Haiku too complex for your needs"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/equinox", "repo": "patrick-kidger/equinox", "role": "main", "score": 92}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.237640+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:47:31.968027+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "668134eae9721b28c512dd0ce76845de53490be4fd7a152aace862f3323bbb38", "fetched_at": "2026-08-28T04:07:32.237640+00:00", "kind": "readme", "missing": false, "url": "https://github.com/patrick-kidger/equinox"}, {"content_hash": "79fd50b6fce16c1c806f4b16a5e8dbfb25af8dfd3d63c2ac47ef6124362d8ac0", "fetched_at": "2026-08-29T09:47:32.730471+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/equinox/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.237640+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:47:31.968027+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "668134eae9721b28c512dd0ce76845de53490be4fd7a152aace862f3323bbb38", "fetched_at": "2026-08-28T04:07:32.237640+00:00", "kind": "readme", "missing": false, "url": "https://github.com/patrick-kidger/equinox"}, {"content_hash": "79fd50b6fce16c1c806f4b16a5e8dbfb25af8dfd3d63c2ac47ef6124362d8ac0", "fetched_at": "2026-08-29T09:47:32.730471+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/equinox/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:47:31.968027+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "668134eae9721b28c512dd0ce76845de53490be4fd7a152aace862f3323bbb38", "fetched_at": "2026-08-28T04:07:32.237640+00:00", "kind": "readme", "missing": false, "url": "https://github.com/patrick-kidger/equinox"}, {"content_hash": "79fd50b6fce16c1c806f4b16a5e8dbfb25af8dfd3d63c2ac47ef6124362d8ac0", "fetched_at": "2026-08-29T09:47:32.730471+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/equinox/json"}], "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:32.237640+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.237640+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.237640+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:47:31.968027+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "668134eae9721b28c512dd0ce76845de53490be4fd7a152aace862f3323bbb38", "fetched_at": "2026-08-28T04:07:32.237640+00:00", "kind": "readme", "missing": false, "url": "https://github.com/patrick-kidger/equinox"}, {"content_hash": "79fd50b6fce16c1c806f4b16a5e8dbfb25af8dfd3d63c2ac47ef6124362d8ac0", "fetched_at": "2026-08-29T09:47:32.730471+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/equinox/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.237640+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.237640+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:47:31.968027+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "668134eae9721b28c512dd0ce76845de53490be4fd7a152aace862f3323bbb38", "fetched_at": "2026-08-28T04:07:32.237640+00:00", "kind": "readme", "missing": false, "url": "https://github.com/patrick-kidger/equinox"}, {"content_hash": "79fd50b6fce16c1c806f4b16a5e8dbfb25af8dfd3d63c2ac47ef6124362d8ac0", "fetched_at": "2026-08-29T09:47:32.730471+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/equinox/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.237640+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.237640+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.237640+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:47:31.968027+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "668134eae9721b28c512dd0ce76845de53490be4fd7a152aace862f3323bbb38", "fetched_at": "2026-08-28T04:07:32.237640+00:00", "kind": "readme", "missing": false, "url": "https://github.com/patrick-kidger/equinox"}, {"content_hash": "79fd50b6fce16c1c806f4b16a5e8dbfb25af8dfd3d63c2ac47ef6124362d8ac0", "fetched_at": "2026-08-29T09:47:32.730471+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/equinox/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.237640+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.237640+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:47:31.968027+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "668134eae9721b28c512dd0ce76845de53490be4fd7a152aace862f3323bbb38", "fetched_at": "2026-08-28T04:07:32.237640+00:00", "kind": "readme", "missing": false, "url": "https://github.com/patrick-kidger/equinox"}, {"content_hash": "79fd50b6fce16c1c806f4b16a5e8dbfb25af8dfd3d63c2ac47ef6124362d8ac0", "fetched_at": "2026-08-29T09:47:32.730471+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/equinox/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:47:31.968027+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "668134eae9721b28c512dd0ce76845de53490be4fd7a152aace862f3323bbb38", "fetched_at": "2026-08-28T04:07:32.237640+00:00", "kind": "readme", "missing": false, "url": "https://github.com/patrick-kidger/equinox"}, {"content_hash": "79fd50b6fce16c1c806f4b16a5e8dbfb25af8dfd3d63c2ac47ef6124362d8ac0", "fetched_at": "2026-08-29T09:47:32.730471+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/equinox/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:47:31.968027+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "668134eae9721b28c512dd0ce76845de53490be4fd7a152aace862f3323bbb38", "fetched_at": "2026-08-28T04:07:32.237640+00:00", "kind": "readme", "missing": false, "url": "https://github.com/patrick-kidger/equinox"}, {"content_hash": "79fd50b6fce16c1c806f4b16a5e8dbfb25af8dfd3d63c2ac47ef6124362d8ac0", "fetched_at": "2026-08-29T09:47:32.730471+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/equinox/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:47:31.968027+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "668134eae9721b28c512dd0ce76845de53490be4fd7a152aace862f3323bbb38", "fetched_at": "2026-08-28T04:07:32.237640+00:00", "kind": "readme", "missing": false, "url": "https://github.com/patrick-kidger/equinox"}, {"content_hash": "79fd50b6fce16c1c806f4b16a5e8dbfb25af8dfd3d63c2ac47ef6124362d8ac0", "fetched_at": "2026-08-29T09:47:32.730471+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/equinox/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 100, "rhythm": 82}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1862, "days_push": 23, "days_rel": 120, "gap_med": 29.5, "n_releases_24m": 19}, "score": 92, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}