> The required components of a system that supports CEL are:
> The textual representation of an expression as written by a developer. It is of similar syntax to expressions in C/C++/Java/JavaScript
Ok
> A binary representation of an expression. It is an abstract syntax tree (AST).
> A compiler library that converts the textual representation to the binary representation. This can be done ahead of time (in the control plane) or just before evaluation (in the data plane).
> A context containing one or more typed variables, often protobuf messages. Most use-cases will use attribute_context.proto
> An evaluator library that takes the binary format in the context and produces a result, usually a Boolean.
Why? All of these sound like implementation details to me, some of which I prefer not to have, such as the necessity for binary representation.
> The required components of a system that supports CEL are:
> The textual representation of an expression as written by a developer. It is of similar syntax to expressions in C/C++/Java/JavaScript
Ok
> A binary representation of an expression. It is an abstract syntax tree (AST).
> A compiler library that converts the textual representation to the binary representation. This can be done ahead of time (in the control plane) or just before evaluation (in the data plane).
> A context containing one or more typed variables, often protobuf messages. Most use-cases will use attribute_context.proto
> An evaluator library that takes the binary format in the context and produces a result, usually a Boolean.
Why? All of these sound like implementation details to me, some of which I prefer not to have, such as the necessity for binary representation.