cel-expr/cel-go
Fast, portable, non-Turing complete expression evaluation with gradual typing (Go)
Build with Backblaze B2
SDKs, agent skills, IDE extensions, and reference pipelines from Backblaze Labs. All open source.
Loading star history...
Where it stands
Rank, growth pace and release cadence relative to everything GStars tracks.
4 releases in the last 90 days, the latest 2 days ago, with 106 contributors on GitHub.
Gained 8% fewer stars in the last 90 days than in the 90 days before.
Use Cases & Benefits
- Implements a fast, portable, non-Turing complete expression evaluation engine with gradual typing in Go.
- Offers lightweight, safe, and efficient expression evaluation with C-like syntax and optional static type checking.
- Use for embedding safe, sandboxed expression evaluation in Go microservices handling dynamic JSON or protobuf data.
- Use for validating and enforcing access control policies with complex logical expressions in distributed systems.
- Use for building customizable rule engines that evaluate user-defined expressions with partial or incomplete input data.
Should you depend on it?
License terms, project hygiene and risks, from GitHub metadata and GStars' snapshots.
License
Apache 2.0
Permissive: commercial use, modification and redistribution are allowed with attribution; includes an explicit patent grant from contributors.
Community files
- README: present
- Contributing guide: present
- Code of conduct: present
Watch-outs
No watch-outs from GStars' checks.
General guidance from repository metadata, not legal advice. How we score
From the README
The Common Expression Language (CEL) is a non-Turing complete language designed for simplicity, speed, safety, and portability. CEL's C-like syntax looks nearly identical to equivalent expressions in C++, Go, Java, and TypeScript.
A CEL "program" is a single expression. The examples have been tagged as
java,go, andtypescriptwithin the markdown to showcase the commonality of the syntax.CEL is ideal for lightweight expression evaluation when a fully sandboxed scripting language is too resource intensive. To get started, try the Codelab.
Determine the variables and functions you want to provide to CEL. Parse and check an expression to make sure it's valid. Then evaluate the output AST against some input. Checking is optional, but strongly encouraged.
Let's expose
nameandgroupvariables to CEL using thecel.Variableenvironment option:That's it. The environment is ready to be used for parsing and type-checking. CEL supports all the usual primitive types in addition to lists, maps, as well as first-class support for JSON and Protocol Buffers.
Daily snapshots
Stars gained per day, and how forks and open issues moved, from GStars' daily snapshots
Forks
315+8
Open issues
70+8
Compared with peers in Backend
Fastest-growing repositories GStars tracks in this cohort for the week of Nov 1, by 7-day star growth
| Repository | Stars | +7d | Health | Last release |
|---|---|---|---|---|
| anthropics/skills | 187.8K | +2.9K | 15 | — |
| DuarteSantos8/openGym | 19.7K | +2.4K | 60 | 2 days ago |
| shiyu-coder/Kronos | 47.0K | +2.3K | 16 | — |
| NationalSecurityAgency/ghidra | 98.2K | +2.3K | 64 | 14 days ago |
| microsoft/VibeVoice | 56.0K | +1.1K | 29 | — |
| cel-expr/cel-go | 3.1K | — | 65 | 2 days ago |
| Category median | 56.0K | +2.3K | 29 | — |
Discover Repositories
Search across tracked repositories by name or description