Tool Open source

Common Expression Language (CEL)

Common Expression Language (CEL) is an embeddable expression language and specification for interoperable expression evaluation across applications, programming languages, and platforms. Its syntax resembles expressions in C, C++, Java, and JavaScript, and it is designed for uses such as security policies and protocol data.

View repository Visit site

Overview

A CEL system compiles a textual expression into an abstract syntax tree and binary representation, evaluates that representation against a context containing typed variables such as protocol-buffer messages, and usually produces a Boolean result. The embedding application supplies functions and data through the evaluation context. CEL is mutation-free, not Turing-complete, and designed for linear-time evaluation; type-checked expressions can be serialized as canonical protocol buffers for persistence or cross-process communication. The specification and accompanying tooling are released under the Apache License.