cel-lite
What if: CEL was light enough to run on every keystroke?
Status: released, used in myelin and plx
I wanted keybindings with when conditions, like VS Code and Zed have, and
CEL is a great language for that. But
cel-go pulls protobuf, ANTLR and a bunch more
modules into your program, and my plx config only asks things like
mode == 'normal' && !pane.zoomed. That's a lot of weight for one line.
So I wrote cel-lite:
- no dependencies, just the standard library
- builds with TinyGo and runs in WebAssembly
- compiles an expression in a microsecond or two, evaluates it in tens of nanoseconds
- what it doesn't implement, it refuses by name, so nothing quietly means something else
It's a subset of CEL. If you need all of it, cel-go is still the right choice.