# cel-expr/cel-spec

Common Expression Language -- specification and binary representation

Repository: https://github.com/cel-expr/cel-spec
Canonical: https://ross.abutalabs.com/products/cel-spec
Homepage: https://cel.dev
Language: Starlark
License: Apache-2.0
License Family: permissive
Last push: 2026-08-13T21:27:23+00:00

## Health v2 (maintenance only)
Score: 98/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 97, release rhythm 97, longevity 100
- inputs: {"age_days": 3285, "days_push": 20, "days_rel": 20, "gap_med": 15.5, "n_releases_24m": 19}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 3954, forks 303 (observed 2026-08-28T04:08:30.481514+00:00)

## What it is
The specification and canonical protobuf binary representation for the Common Expression Language (CEL), a fast, non-Turing-complete expression language designed to be embedded in applications. This repo defines the language semantics, AST proto definitions, and conformance tooling rather than providing a runtime implementation itself.

## Use cases
- evaluate safe user-supplied expressions in my api
- write authorization policy rules for requests
- add validation constraints to protobuf messages
- embed an expression evaluator in my application
- implement a CEL interpreter in another language
- share expression semantics across services and languages

## When to choose
- you need the authoritative language spec or canonical proto definitions to build or verify a CEL implementation
- you want a safe, fast, non-Turing-complete expression language for policies, filters, or validation
- you need expression interoperability across languages and platforms

## When to avoid
- you need an actual CEL parser/evaluator runtime - use a language implementation like cel-go, cel-cpp, or cel-python instead
- you need a general-purpose, Turing-complete scripting language

## Facets
- artifact type: learning-resource
- maturity: stable
- function: programming-language, parser, serialization, authorization
- domain: programming-languages, security, developer-tools, apis
- platform: cross-platform
- tags: expression-language, specification, policy-engine, protobuf, cel

## Member repositories
- cel-expr/cel-spec (main) score 98

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:08:30.481514+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T18:24:30.270371+00:00, confidence not recorded.
  - readme: https://github.com/cel-expr/cel-spec (fetched 2026-08-28T04:08:30.481514+00:00, sha 3088a6dc9834)
  - homepage: https://cel.dev (fetched 2026-08-29T09:17:59.879141+00:00, sha a1e22045bb63)
- Data as of 2026-08-30T08:39:29.467469+00:00.
