{"adoption": {"forks": 61, "observed_at": "2026-08-28T04:06:10.126335+00:00", "stars": 2066}, "canonical_url": "https://ross.abutalabs.com/products/sauron", "card": {"archived": false, "artifact_type": "framework", "description": "A versatile web framework and library for building client-side and server-side web applications", "domain": ["web-development", "frontend", "web-design"], "enriched": true, "function": ["web-framework", "frontend-framework", "ssr", "static-site-generator", "templating", "state-management", "ui-components"], "health_score": 22, "homepage": null, "language": "Rust", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["ivanceras/sauron"], "name": "ivanceras/sauron", "platform": ["rust", "wasm", "browser", "cross-platform"], "pushed_at": "2025-01-27T11:51:25+00:00", "repo": "ivanceras/sauron", "stars": 2066, "tags": ["elm-architecture", "virtual-dom", "web-components", "client-side-rendering", "server-side-rendering", "rust-web-framework", "progressive-rendering", "jss-styles", "web-server"], "topics": ["web", "html", "dom", "elm", "vdom", "ssr", "react"], "urls": [], "use_cases": ["build a client-side web app in rust with elm-style architecture", "server-side render a rust web application", "generate a static site from rust code", "create web components or custom elements in rust", "patch an existing dom node with a virtual dom diff", "write views and styles entirely in rust without a template language", "build a progressive-rendering web app"], "what_it_is": "Sauron is a versatile Rust web framework and library for building client-side and/or server-side web applications, inspired by The Elm Architecture with model-view-update patterns. It emphasizes ergonomics and simplicity, offering server-side rendering, static site generation, web components, and a standalone DOM/VirtualDOM patcher.", "when_to_avoid": ["your team is more productive with mainstream javascript frameworks and ecosystems", "you need a large component library or extensive third-party ui ecosystem", "you want a framework with a dedicated cli and dev-server tooling out of the box", "you need mature ssr hydration parity comparable to next.js or similar"], "when_to_choose": ["you want an elm-like architecture in rust with minimal framework complexity", "you need both client-side and server-side rendering from one framework", "you prefer writing views, events, and styling in rust rather than html templates or css", "you want a batteries-included framework without a required cli toolchain"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/sauron", "repo": "ivanceras/sauron", "role": "main", "score": 24}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:10.126335+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:56:54.023366+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4a25262cc9e2930a281e4c1e4b26bf2471228bf94a7df7c8ea3fe59e6f162165", "fetched_at": "2026-08-28T04:06:10.126335+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ivanceras/sauron"}, {"content_hash": "6530d6a9cfd0627c2b3a4130f3a57b622f853c17fd423a05856bd9ec0af65f19", "fetched_at": "2026-08-29T10:37:07.284115+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/sauron"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:10.126335+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:56:54.023366+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4a25262cc9e2930a281e4c1e4b26bf2471228bf94a7df7c8ea3fe59e6f162165", "fetched_at": "2026-08-28T04:06:10.126335+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ivanceras/sauron"}, {"content_hash": "6530d6a9cfd0627c2b3a4130f3a57b622f853c17fd423a05856bd9ec0af65f19", "fetched_at": "2026-08-29T10:37:07.284115+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/sauron"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:56:54.023366+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4a25262cc9e2930a281e4c1e4b26bf2471228bf94a7df7c8ea3fe59e6f162165", "fetched_at": "2026-08-28T04:06:10.126335+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ivanceras/sauron"}, {"content_hash": "6530d6a9cfd0627c2b3a4130f3a57b622f853c17fd423a05856bd9ec0af65f19", "fetched_at": "2026-08-29T10:37:07.284115+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/sauron"}], "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:06:10.126335+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:10.126335+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:10.126335+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:56:54.023366+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4a25262cc9e2930a281e4c1e4b26bf2471228bf94a7df7c8ea3fe59e6f162165", "fetched_at": "2026-08-28T04:06:10.126335+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ivanceras/sauron"}, {"content_hash": "6530d6a9cfd0627c2b3a4130f3a57b622f853c17fd423a05856bd9ec0af65f19", "fetched_at": "2026-08-29T10:37:07.284115+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/sauron"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:10.126335+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:10.126335+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:56:54.023366+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4a25262cc9e2930a281e4c1e4b26bf2471228bf94a7df7c8ea3fe59e6f162165", "fetched_at": "2026-08-28T04:06:10.126335+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ivanceras/sauron"}, {"content_hash": "6530d6a9cfd0627c2b3a4130f3a57b622f853c17fd423a05856bd9ec0af65f19", "fetched_at": "2026-08-29T10:37:07.284115+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/sauron"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:10.126335+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:10.126335+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:10.126335+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:56:54.023366+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4a25262cc9e2930a281e4c1e4b26bf2471228bf94a7df7c8ea3fe59e6f162165", "fetched_at": "2026-08-28T04:06:10.126335+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ivanceras/sauron"}, {"content_hash": "6530d6a9cfd0627c2b3a4130f3a57b622f853c17fd423a05856bd9ec0af65f19", "fetched_at": "2026-08-29T10:37:07.284115+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/sauron"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:10.126335+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:10.126335+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:56:54.023366+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4a25262cc9e2930a281e4c1e4b26bf2471228bf94a7df7c8ea3fe59e6f162165", "fetched_at": "2026-08-28T04:06:10.126335+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ivanceras/sauron"}, {"content_hash": "6530d6a9cfd0627c2b3a4130f3a57b622f853c17fd423a05856bd9ec0af65f19", "fetched_at": "2026-08-29T10:37:07.284115+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/sauron"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:56:54.023366+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4a25262cc9e2930a281e4c1e4b26bf2471228bf94a7df7c8ea3fe59e6f162165", "fetched_at": "2026-08-28T04:06:10.126335+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ivanceras/sauron"}, {"content_hash": "6530d6a9cfd0627c2b3a4130f3a57b622f853c17fd423a05856bd9ec0af65f19", "fetched_at": "2026-08-29T10:37:07.284115+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/sauron"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:56:54.023366+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4a25262cc9e2930a281e4c1e4b26bf2471228bf94a7df7c8ea3fe59e6f162165", "fetched_at": "2026-08-28T04:06:10.126335+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ivanceras/sauron"}, {"content_hash": "6530d6a9cfd0627c2b3a4130f3a57b622f853c17fd423a05856bd9ec0af65f19", "fetched_at": "2026-08-29T10:37:07.284115+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/sauron"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:56:54.023366+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4a25262cc9e2930a281e4c1e4b26bf2471228bf94a7df7c8ea3fe59e6f162165", "fetched_at": "2026-08-28T04:06:10.126335+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ivanceras/sauron"}, {"content_hash": "6530d6a9cfd0627c2b3a4130f3a57b622f853c17fd423a05856bd9ec0af65f19", "fetched_at": "2026-08-29T10:37:07.284115+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/sauron"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 3, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2697, "days_push": 583, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 24, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}