« All posts

Celly Brings 100% Conformant CEL to Native C#/.NET

Celly is a native, pure C# implementation of Google's CEL with 100% cel-spec conformance and near cel-go performance.

Celly is a from-scratch, pure managed C# implementation of Google's Common Expression Language (CEL) — no WASM shims, no Go-compiled artifacts, no native bindings. It passes all 2,456 tests in the official cel-spec conformance suite (100%), verified in CI across Linux, Windows, and macOS.

CEL powers policy and rule evaluation in Kubernetes ValidatingAdmissionPolicy, Envoy RBAC, Google Cloud IAM conditions, and gRPC protovalidate. Official implementations existed for Go, C++, Java, and Rust, but .NET had no native option until now.

Now at 1.0 with a stable, snapshot-tested public API and fuzz-hardened evaluation, Celly runs within roughly 1.2x of the reference cel-go implementation on simple expressions and outperforms it on comprehension-heavy ones, while beating Cel.NET across the board. It ships full macro support, a gradual type checker, optional chaining, protobuf integration (including an opt-in strong-enum mode not offered by cel-go), and a NativeTypeProvider for giving plain .NET classes and records CEL semantics without protobuf. Released under Apache-2.0, it gives .NET teams a dependency-free path to CEL-based policy engines.