expr-lang/expr
Expression language and expression evaluation for Go observed · 2026-08-28
Health v2 · maintenance only
81/100
- Activity 91
- Release rhythm 58
- Longevity 100
How is this computed?
round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10) — computed 2026-09-02. Adoption (stars, forks) is never an input.
- gap_med: 31.5
- age_days: 2972
- days_rel: 200
- days_push: 57
- n_releases_24m: 9
Adoption not part of the score
7989 stars · 527 forks observed · 2026-08-28
What it is AI-extracted, prompt v1, taxonomy v1, 2026-08-29, confidence not recorded
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.
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
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
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
Facets
library · maturity stable
interpreter compiler configuration-management developer-tools programming-languages developer-tools backend go cross-platform expression-language rule-engine bytecode-vm static-typing safe-evaluation dsl automation
10 sources
- readme: https://github.com/expr-lang/expr · fetched 2026-08-28 · c0c15bc750e4
- homepage: https://expr-lang.org · fetched 2026-08-29 · d42fce70c262
- site_page: https://expr-lang.org/docs/language-definition · fetched 2026-08-29 · c05d7ef15bf9
- site_page: https://expr-lang.org/docs/v1.16/getting-started · fetched 2026-08-29 · b704fe3da767
- site_page: https://expr-lang.org/docs/getting-started · fetched 2026-08-29 · dd4a6f14276e
- site_page: https://expr-lang.org/docs/v1.15/getting-started · fetched 2026-08-29 · 042b1b8dc4b5
- site_page: https://expr-lang.org/docs/v1.14/Getting-Started · fetched 2026-08-29 · 744eb6f179d8
- site_page: https://expr-lang.org/docs/v1.13/Getting-Started · fetched 2026-08-29 · c7da64d54421
- site_page: https://expr-lang.org/docs/v1.12/Getting-Started · fetched 2026-08-29 · 38089269d81e
- site_page: https://expr-lang.org/docs/v1.11/Getting-Started · fetched 2026-08-29 · 85b888342ead
Member repositories
| Repository | Role | Health v2 |
|---|---|---|
| expr-lang/expr | main | 81 |
For agents
Data as of 2026-08-30T08:39:29.467469+00:00 · Report a problem