{"adoption": {"forks": 527, "observed_at": "2026-08-28T04:10:10.592297+00:00", "stars": 7989}, "canonical_url": "https://ross.abutalabs.com/products/expr", "card": {"archived": false, "artifact_type": "library", "description": "Expression language and expression evaluation for Go", "domain": ["programming-languages", "developer-tools", "backend"], "enriched": true, "function": ["interpreter", "compiler", "configuration-management", "developer-tools"], "health_score": 92, "homepage": "https://expr-lang.org", "language": "Go", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["expr-lang/expr"], "name": "expr-lang/expr", "platform": ["go", "cross-platform"], "pushed_at": "2026-07-07T06:57:20+00:00", "repo": "expr-lang/expr", "stars": 7989, "tags": ["expression-language", "rule-engine", "bytecode-vm", "static-typing", "safe-evaluation", "dsl", "automation"], "topics": ["configuration-language", "expression", "evaluator", "go", "expression-language", "expression-evaluator", "expr", "bytecode", "engine", "golang", "rule-engine"], "urls": [], "use_cases": ["evaluate user-supplied expressions safely in a Go app", "build a rule engine for access control policies", "add dynamic configuration logic to a Go service", "type-check expressions against Go structs at compile time", "filter and map over collections with a small DSL", "let users write business rules without redeploying code"], "what_it_is": "Expr is a Go-centric expression language and evaluation engine that compiles expressions into bytecode and runs them on a fast, safe virtual machine. It offers static type checking against Go environments, memory-safe and side-effect-free execution, and built-in functions for collections, making it ideal for dynamic configuration and business rules.", "when_to_avoid": ["you need a full general-purpose scripting language with loops and side effects", "your project is not in Go", "you need sandboxed execution of arbitrary user code beyond pure expressions"], "when_to_choose": ["you need safe, terminating, side-effect-free expression evaluation in Go", "you want static typing and friendly compile-time errors for user-written expressions", "you need high-performance evaluation with a bytecode VM and reusable compiled programs", "you want seamless use of existing Go structs, maps, and methods as the expression environment"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/expr", "repo": "expr-lang/expr", "role": "main", "score": 81}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:10.592297+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:32:34.163624+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0c15bc750e4d8e227384d2caecfa8b9cc36d437d64a00bd477ddaaa4d469f7a", "fetched_at": "2026-08-28T04:10:10.592297+00:00", "kind": "readme", "missing": false, "url": "https://github.com/expr-lang/expr"}, {"content_hash": "d42fce70c262201fcac848d7c81d08f9ca6cbbf2d3843a7342b5d180d728c0d3", "fetched_at": "2026-08-29T08:29:39.401812+00:00", "kind": "homepage", "missing": false, "url": "https://expr-lang.org"}, {"content_hash": "c05d7ef15bf9af1f50257d9808642acc945476e12a961bc8dbadf48bae895b5b", "fetched_at": "2026-08-29T08:29:39.413443+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/language-definition"}, {"content_hash": "b704fe3da7677efbf65a99e53a4d965de9b749321d6ea1755d14358b60558a8b", "fetched_at": "2026-08-29T08:29:39.415673+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.16/getting-started"}, {"content_hash": "dd4a6f14276e6b3566772982fd73a8c99fd8127a6b5a5f7b8acd6186cdb1d8b7", "fetched_at": "2026-08-29T08:29:39.411222+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/getting-started"}, {"content_hash": "042b1b8dc4b5ed4e859514ebb1d56e7b005be8db989bcf4cf4acd0dceb0cedd8", "fetched_at": "2026-08-29T08:29:39.417583+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.15/getting-started"}, {"content_hash": "744eb6f179d8676e0f7c020e6fcbb2dc6c382b4a87e6ac199fb91027f07169bf", "fetched_at": "2026-08-29T08:29:39.419634+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.14/Getting-Started"}, {"content_hash": "c7da64d54421d6b466d39f0720279f57a8cd9884dc9ec22e97ed87858abe43d9", "fetched_at": "2026-08-29T08:29:39.421355+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.13/Getting-Started"}, {"content_hash": "38089269d81e56192867d9441ff35207fccea718ee00f52f1cbe3ce5bbd6dc45", "fetched_at": "2026-08-29T08:29:39.423020+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.12/Getting-Started"}, {"content_hash": "85b888342ead851716867a440601a45290960433d6c0e324a5c6028a0ab0e3db", "fetched_at": "2026-08-29T08:29:39.424733+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.11/Getting-Started"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:10.592297+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:32:34.163624+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0c15bc750e4d8e227384d2caecfa8b9cc36d437d64a00bd477ddaaa4d469f7a", "fetched_at": "2026-08-28T04:10:10.592297+00:00", "kind": "readme", "missing": false, "url": "https://github.com/expr-lang/expr"}, {"content_hash": "d42fce70c262201fcac848d7c81d08f9ca6cbbf2d3843a7342b5d180d728c0d3", "fetched_at": "2026-08-29T08:29:39.401812+00:00", "kind": "homepage", "missing": false, "url": "https://expr-lang.org"}, {"content_hash": "c05d7ef15bf9af1f50257d9808642acc945476e12a961bc8dbadf48bae895b5b", "fetched_at": "2026-08-29T08:29:39.413443+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/language-definition"}, {"content_hash": "b704fe3da7677efbf65a99e53a4d965de9b749321d6ea1755d14358b60558a8b", "fetched_at": "2026-08-29T08:29:39.415673+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.16/getting-started"}, {"content_hash": "dd4a6f14276e6b3566772982fd73a8c99fd8127a6b5a5f7b8acd6186cdb1d8b7", "fetched_at": "2026-08-29T08:29:39.411222+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/getting-started"}, {"content_hash": "042b1b8dc4b5ed4e859514ebb1d56e7b005be8db989bcf4cf4acd0dceb0cedd8", "fetched_at": "2026-08-29T08:29:39.417583+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.15/getting-started"}, {"content_hash": "744eb6f179d8676e0f7c020e6fcbb2dc6c382b4a87e6ac199fb91027f07169bf", "fetched_at": "2026-08-29T08:29:39.419634+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.14/Getting-Started"}, {"content_hash": "c7da64d54421d6b466d39f0720279f57a8cd9884dc9ec22e97ed87858abe43d9", "fetched_at": "2026-08-29T08:29:39.421355+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.13/Getting-Started"}, {"content_hash": "38089269d81e56192867d9441ff35207fccea718ee00f52f1cbe3ce5bbd6dc45", "fetched_at": "2026-08-29T08:29:39.423020+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.12/Getting-Started"}, {"content_hash": "85b888342ead851716867a440601a45290960433d6c0e324a5c6028a0ab0e3db", "fetched_at": "2026-08-29T08:29:39.424733+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.11/Getting-Started"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:32:34.163624+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0c15bc750e4d8e227384d2caecfa8b9cc36d437d64a00bd477ddaaa4d469f7a", "fetched_at": "2026-08-28T04:10:10.592297+00:00", "kind": "readme", "missing": false, "url": "https://github.com/expr-lang/expr"}, {"content_hash": "d42fce70c262201fcac848d7c81d08f9ca6cbbf2d3843a7342b5d180d728c0d3", "fetched_at": "2026-08-29T08:29:39.401812+00:00", "kind": "homepage", "missing": false, "url": "https://expr-lang.org"}, {"content_hash": "c05d7ef15bf9af1f50257d9808642acc945476e12a961bc8dbadf48bae895b5b", "fetched_at": "2026-08-29T08:29:39.413443+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/language-definition"}, {"content_hash": "b704fe3da7677efbf65a99e53a4d965de9b749321d6ea1755d14358b60558a8b", "fetched_at": "2026-08-29T08:29:39.415673+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.16/getting-started"}, {"content_hash": "dd4a6f14276e6b3566772982fd73a8c99fd8127a6b5a5f7b8acd6186cdb1d8b7", "fetched_at": "2026-08-29T08:29:39.411222+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/getting-started"}, {"content_hash": "042b1b8dc4b5ed4e859514ebb1d56e7b005be8db989bcf4cf4acd0dceb0cedd8", "fetched_at": "2026-08-29T08:29:39.417583+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.15/getting-started"}, {"content_hash": "744eb6f179d8676e0f7c020e6fcbb2dc6c382b4a87e6ac199fb91027f07169bf", "fetched_at": "2026-08-29T08:29:39.419634+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.14/Getting-Started"}, {"content_hash": "c7da64d54421d6b466d39f0720279f57a8cd9884dc9ec22e97ed87858abe43d9", "fetched_at": "2026-08-29T08:29:39.421355+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.13/Getting-Started"}, {"content_hash": "38089269d81e56192867d9441ff35207fccea718ee00f52f1cbe3ce5bbd6dc45", "fetched_at": "2026-08-29T08:29:39.423020+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.12/Getting-Started"}, {"content_hash": "85b888342ead851716867a440601a45290960433d6c0e324a5c6028a0ab0e3db", "fetched_at": "2026-08-29T08:29:39.424733+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.11/Getting-Started"}], "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:10:10.592297+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:10.592297+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:10.592297+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:32:34.163624+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0c15bc750e4d8e227384d2caecfa8b9cc36d437d64a00bd477ddaaa4d469f7a", "fetched_at": "2026-08-28T04:10:10.592297+00:00", "kind": "readme", "missing": false, "url": "https://github.com/expr-lang/expr"}, {"content_hash": "d42fce70c262201fcac848d7c81d08f9ca6cbbf2d3843a7342b5d180d728c0d3", "fetched_at": "2026-08-29T08:29:39.401812+00:00", "kind": "homepage", "missing": false, "url": "https://expr-lang.org"}, {"content_hash": "c05d7ef15bf9af1f50257d9808642acc945476e12a961bc8dbadf48bae895b5b", "fetched_at": "2026-08-29T08:29:39.413443+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/language-definition"}, {"content_hash": "b704fe3da7677efbf65a99e53a4d965de9b749321d6ea1755d14358b60558a8b", "fetched_at": "2026-08-29T08:29:39.415673+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.16/getting-started"}, {"content_hash": "dd4a6f14276e6b3566772982fd73a8c99fd8127a6b5a5f7b8acd6186cdb1d8b7", "fetched_at": "2026-08-29T08:29:39.411222+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/getting-started"}, {"content_hash": "042b1b8dc4b5ed4e859514ebb1d56e7b005be8db989bcf4cf4acd0dceb0cedd8", "fetched_at": "2026-08-29T08:29:39.417583+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.15/getting-started"}, {"content_hash": "744eb6f179d8676e0f7c020e6fcbb2dc6c382b4a87e6ac199fb91027f07169bf", "fetched_at": "2026-08-29T08:29:39.419634+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.14/Getting-Started"}, {"content_hash": "c7da64d54421d6b466d39f0720279f57a8cd9884dc9ec22e97ed87858abe43d9", "fetched_at": "2026-08-29T08:29:39.421355+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.13/Getting-Started"}, {"content_hash": "38089269d81e56192867d9441ff35207fccea718ee00f52f1cbe3ce5bbd6dc45", "fetched_at": "2026-08-29T08:29:39.423020+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.12/Getting-Started"}, {"content_hash": "85b888342ead851716867a440601a45290960433d6c0e324a5c6028a0ab0e3db", "fetched_at": "2026-08-29T08:29:39.424733+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.11/Getting-Started"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:10.592297+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:10.592297+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:32:34.163624+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0c15bc750e4d8e227384d2caecfa8b9cc36d437d64a00bd477ddaaa4d469f7a", "fetched_at": "2026-08-28T04:10:10.592297+00:00", "kind": "readme", "missing": false, "url": "https://github.com/expr-lang/expr"}, {"content_hash": "d42fce70c262201fcac848d7c81d08f9ca6cbbf2d3843a7342b5d180d728c0d3", "fetched_at": "2026-08-29T08:29:39.401812+00:00", "kind": "homepage", "missing": false, "url": "https://expr-lang.org"}, {"content_hash": "c05d7ef15bf9af1f50257d9808642acc945476e12a961bc8dbadf48bae895b5b", "fetched_at": "2026-08-29T08:29:39.413443+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/language-definition"}, {"content_hash": "b704fe3da7677efbf65a99e53a4d965de9b749321d6ea1755d14358b60558a8b", "fetched_at": "2026-08-29T08:29:39.415673+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.16/getting-started"}, {"content_hash": "dd4a6f14276e6b3566772982fd73a8c99fd8127a6b5a5f7b8acd6186cdb1d8b7", "fetched_at": "2026-08-29T08:29:39.411222+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/getting-started"}, {"content_hash": "042b1b8dc4b5ed4e859514ebb1d56e7b005be8db989bcf4cf4acd0dceb0cedd8", "fetched_at": "2026-08-29T08:29:39.417583+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.15/getting-started"}, {"content_hash": "744eb6f179d8676e0f7c020e6fcbb2dc6c382b4a87e6ac199fb91027f07169bf", "fetched_at": "2026-08-29T08:29:39.419634+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.14/Getting-Started"}, {"content_hash": "c7da64d54421d6b466d39f0720279f57a8cd9884dc9ec22e97ed87858abe43d9", "fetched_at": "2026-08-29T08:29:39.421355+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.13/Getting-Started"}, {"content_hash": "38089269d81e56192867d9441ff35207fccea718ee00f52f1cbe3ce5bbd6dc45", "fetched_at": "2026-08-29T08:29:39.423020+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.12/Getting-Started"}, {"content_hash": "85b888342ead851716867a440601a45290960433d6c0e324a5c6028a0ab0e3db", "fetched_at": "2026-08-29T08:29:39.424733+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.11/Getting-Started"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:10.592297+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:10.592297+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:10.592297+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:32:34.163624+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0c15bc750e4d8e227384d2caecfa8b9cc36d437d64a00bd477ddaaa4d469f7a", "fetched_at": "2026-08-28T04:10:10.592297+00:00", "kind": "readme", "missing": false, "url": "https://github.com/expr-lang/expr"}, {"content_hash": "d42fce70c262201fcac848d7c81d08f9ca6cbbf2d3843a7342b5d180d728c0d3", "fetched_at": "2026-08-29T08:29:39.401812+00:00", "kind": "homepage", "missing": false, "url": "https://expr-lang.org"}, {"content_hash": "c05d7ef15bf9af1f50257d9808642acc945476e12a961bc8dbadf48bae895b5b", "fetched_at": "2026-08-29T08:29:39.413443+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/language-definition"}, {"content_hash": "b704fe3da7677efbf65a99e53a4d965de9b749321d6ea1755d14358b60558a8b", "fetched_at": "2026-08-29T08:29:39.415673+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.16/getting-started"}, {"content_hash": "dd4a6f14276e6b3566772982fd73a8c99fd8127a6b5a5f7b8acd6186cdb1d8b7", "fetched_at": "2026-08-29T08:29:39.411222+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/getting-started"}, {"content_hash": "042b1b8dc4b5ed4e859514ebb1d56e7b005be8db989bcf4cf4acd0dceb0cedd8", "fetched_at": "2026-08-29T08:29:39.417583+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.15/getting-started"}, {"content_hash": "744eb6f179d8676e0f7c020e6fcbb2dc6c382b4a87e6ac199fb91027f07169bf", "fetched_at": "2026-08-29T08:29:39.419634+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.14/Getting-Started"}, {"content_hash": "c7da64d54421d6b466d39f0720279f57a8cd9884dc9ec22e97ed87858abe43d9", "fetched_at": "2026-08-29T08:29:39.421355+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.13/Getting-Started"}, {"content_hash": "38089269d81e56192867d9441ff35207fccea718ee00f52f1cbe3ce5bbd6dc45", "fetched_at": "2026-08-29T08:29:39.423020+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.12/Getting-Started"}, {"content_hash": "85b888342ead851716867a440601a45290960433d6c0e324a5c6028a0ab0e3db", "fetched_at": "2026-08-29T08:29:39.424733+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.11/Getting-Started"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:10.592297+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:10.592297+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:32:34.163624+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0c15bc750e4d8e227384d2caecfa8b9cc36d437d64a00bd477ddaaa4d469f7a", "fetched_at": "2026-08-28T04:10:10.592297+00:00", "kind": "readme", "missing": false, "url": "https://github.com/expr-lang/expr"}, {"content_hash": "d42fce70c262201fcac848d7c81d08f9ca6cbbf2d3843a7342b5d180d728c0d3", "fetched_at": "2026-08-29T08:29:39.401812+00:00", "kind": "homepage", "missing": false, "url": "https://expr-lang.org"}, {"content_hash": "c05d7ef15bf9af1f50257d9808642acc945476e12a961bc8dbadf48bae895b5b", "fetched_at": "2026-08-29T08:29:39.413443+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/language-definition"}, {"content_hash": "b704fe3da7677efbf65a99e53a4d965de9b749321d6ea1755d14358b60558a8b", "fetched_at": "2026-08-29T08:29:39.415673+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.16/getting-started"}, {"content_hash": "dd4a6f14276e6b3566772982fd73a8c99fd8127a6b5a5f7b8acd6186cdb1d8b7", "fetched_at": "2026-08-29T08:29:39.411222+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/getting-started"}, {"content_hash": "042b1b8dc4b5ed4e859514ebb1d56e7b005be8db989bcf4cf4acd0dceb0cedd8", "fetched_at": "2026-08-29T08:29:39.417583+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.15/getting-started"}, {"content_hash": "744eb6f179d8676e0f7c020e6fcbb2dc6c382b4a87e6ac199fb91027f07169bf", "fetched_at": "2026-08-29T08:29:39.419634+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.14/Getting-Started"}, {"content_hash": "c7da64d54421d6b466d39f0720279f57a8cd9884dc9ec22e97ed87858abe43d9", "fetched_at": "2026-08-29T08:29:39.421355+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.13/Getting-Started"}, {"content_hash": "38089269d81e56192867d9441ff35207fccea718ee00f52f1cbe3ce5bbd6dc45", "fetched_at": "2026-08-29T08:29:39.423020+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.12/Getting-Started"}, {"content_hash": "85b888342ead851716867a440601a45290960433d6c0e324a5c6028a0ab0e3db", "fetched_at": "2026-08-29T08:29:39.424733+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.11/Getting-Started"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:32:34.163624+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0c15bc750e4d8e227384d2caecfa8b9cc36d437d64a00bd477ddaaa4d469f7a", "fetched_at": "2026-08-28T04:10:10.592297+00:00", "kind": "readme", "missing": false, "url": "https://github.com/expr-lang/expr"}, {"content_hash": "d42fce70c262201fcac848d7c81d08f9ca6cbbf2d3843a7342b5d180d728c0d3", "fetched_at": "2026-08-29T08:29:39.401812+00:00", "kind": "homepage", "missing": false, "url": "https://expr-lang.org"}, {"content_hash": "c05d7ef15bf9af1f50257d9808642acc945476e12a961bc8dbadf48bae895b5b", "fetched_at": "2026-08-29T08:29:39.413443+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/language-definition"}, {"content_hash": "b704fe3da7677efbf65a99e53a4d965de9b749321d6ea1755d14358b60558a8b", "fetched_at": "2026-08-29T08:29:39.415673+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.16/getting-started"}, {"content_hash": "dd4a6f14276e6b3566772982fd73a8c99fd8127a6b5a5f7b8acd6186cdb1d8b7", "fetched_at": "2026-08-29T08:29:39.411222+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/getting-started"}, {"content_hash": "042b1b8dc4b5ed4e859514ebb1d56e7b005be8db989bcf4cf4acd0dceb0cedd8", "fetched_at": "2026-08-29T08:29:39.417583+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.15/getting-started"}, {"content_hash": "744eb6f179d8676e0f7c020e6fcbb2dc6c382b4a87e6ac199fb91027f07169bf", "fetched_at": "2026-08-29T08:29:39.419634+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.14/Getting-Started"}, {"content_hash": "c7da64d54421d6b466d39f0720279f57a8cd9884dc9ec22e97ed87858abe43d9", "fetched_at": "2026-08-29T08:29:39.421355+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.13/Getting-Started"}, {"content_hash": "38089269d81e56192867d9441ff35207fccea718ee00f52f1cbe3ce5bbd6dc45", "fetched_at": "2026-08-29T08:29:39.423020+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.12/Getting-Started"}, {"content_hash": "85b888342ead851716867a440601a45290960433d6c0e324a5c6028a0ab0e3db", "fetched_at": "2026-08-29T08:29:39.424733+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.11/Getting-Started"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:32:34.163624+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0c15bc750e4d8e227384d2caecfa8b9cc36d437d64a00bd477ddaaa4d469f7a", "fetched_at": "2026-08-28T04:10:10.592297+00:00", "kind": "readme", "missing": false, "url": "https://github.com/expr-lang/expr"}, {"content_hash": "d42fce70c262201fcac848d7c81d08f9ca6cbbf2d3843a7342b5d180d728c0d3", "fetched_at": "2026-08-29T08:29:39.401812+00:00", "kind": "homepage", "missing": false, "url": "https://expr-lang.org"}, {"content_hash": "c05d7ef15bf9af1f50257d9808642acc945476e12a961bc8dbadf48bae895b5b", "fetched_at": "2026-08-29T08:29:39.413443+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/language-definition"}, {"content_hash": "b704fe3da7677efbf65a99e53a4d965de9b749321d6ea1755d14358b60558a8b", "fetched_at": "2026-08-29T08:29:39.415673+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.16/getting-started"}, {"content_hash": "dd4a6f14276e6b3566772982fd73a8c99fd8127a6b5a5f7b8acd6186cdb1d8b7", "fetched_at": "2026-08-29T08:29:39.411222+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/getting-started"}, {"content_hash": "042b1b8dc4b5ed4e859514ebb1d56e7b005be8db989bcf4cf4acd0dceb0cedd8", "fetched_at": "2026-08-29T08:29:39.417583+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.15/getting-started"}, {"content_hash": "744eb6f179d8676e0f7c020e6fcbb2dc6c382b4a87e6ac199fb91027f07169bf", "fetched_at": "2026-08-29T08:29:39.419634+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.14/Getting-Started"}, {"content_hash": "c7da64d54421d6b466d39f0720279f57a8cd9884dc9ec22e97ed87858abe43d9", "fetched_at": "2026-08-29T08:29:39.421355+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.13/Getting-Started"}, {"content_hash": "38089269d81e56192867d9441ff35207fccea718ee00f52f1cbe3ce5bbd6dc45", "fetched_at": "2026-08-29T08:29:39.423020+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.12/Getting-Started"}, {"content_hash": "85b888342ead851716867a440601a45290960433d6c0e324a5c6028a0ab0e3db", "fetched_at": "2026-08-29T08:29:39.424733+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.11/Getting-Started"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:32:34.163624+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0c15bc750e4d8e227384d2caecfa8b9cc36d437d64a00bd477ddaaa4d469f7a", "fetched_at": "2026-08-28T04:10:10.592297+00:00", "kind": "readme", "missing": false, "url": "https://github.com/expr-lang/expr"}, {"content_hash": "d42fce70c262201fcac848d7c81d08f9ca6cbbf2d3843a7342b5d180d728c0d3", "fetched_at": "2026-08-29T08:29:39.401812+00:00", "kind": "homepage", "missing": false, "url": "https://expr-lang.org"}, {"content_hash": "c05d7ef15bf9af1f50257d9808642acc945476e12a961bc8dbadf48bae895b5b", "fetched_at": "2026-08-29T08:29:39.413443+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/language-definition"}, {"content_hash": "b704fe3da7677efbf65a99e53a4d965de9b749321d6ea1755d14358b60558a8b", "fetched_at": "2026-08-29T08:29:39.415673+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.16/getting-started"}, {"content_hash": "dd4a6f14276e6b3566772982fd73a8c99fd8127a6b5a5f7b8acd6186cdb1d8b7", "fetched_at": "2026-08-29T08:29:39.411222+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/getting-started"}, {"content_hash": "042b1b8dc4b5ed4e859514ebb1d56e7b005be8db989bcf4cf4acd0dceb0cedd8", "fetched_at": "2026-08-29T08:29:39.417583+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.15/getting-started"}, {"content_hash": "744eb6f179d8676e0f7c020e6fcbb2dc6c382b4a87e6ac199fb91027f07169bf", "fetched_at": "2026-08-29T08:29:39.419634+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.14/Getting-Started"}, {"content_hash": "c7da64d54421d6b466d39f0720279f57a8cd9884dc9ec22e97ed87858abe43d9", "fetched_at": "2026-08-29T08:29:39.421355+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.13/Getting-Started"}, {"content_hash": "38089269d81e56192867d9441ff35207fccea718ee00f52f1cbe3ce5bbd6dc45", "fetched_at": "2026-08-29T08:29:39.423020+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.12/Getting-Started"}, {"content_hash": "85b888342ead851716867a440601a45290960433d6c0e324a5c6028a0ab0e3db", "fetched_at": "2026-08-29T08:29:39.424733+00:00", "kind": "site_page", "missing": false, "url": "https://expr-lang.org/docs/v1.11/Getting-Started"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 91, "longevity": 100, "rhythm": 58}, "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": 2972, "days_push": 57, "days_rel": 200, "gap_med": 31.5, "n_releases_24m": 9}, "score": 81, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}