Cel-Spec is an addition to Protobuf which adds a common expression language. This allows you to define rules/validations for protobuf files that include some kind of logic.
Ex.: age > 18 or similiar. These can be evaluated as booleans. This allows you to have these business rules defined outside of your program logic in a separate format that's not programming-language dependent.
If there's ever the need to switch your programming language (for example more performance if you switch to rust/c++) then you can just generate your validations from your cel-spec again!
Cel-Spec: (language definition)
https://github.com/google/cel-spec
Cel-Go: (To use Cel with go)
https://github.com/google/cel-go
Also:
https://github.com/bufbuild/protovalidate
Ex.: age > 18 or similiar. These can be evaluated as booleans. This allows you to have these business rules defined outside of your program logic in a separate format that's not programming-language dependent.
If there's ever the need to switch your programming language (for example more performance if you switch to rust/c++) then you can just generate your validations from your cel-spec again!
Cel-Spec: (language definition)
https://github.com/google/cel-spec
Cel-Go: (To use Cel with go)
https://github.com/google/cel-go
Also:
https://github.com/bufbuild/protovalidate
GitHub
GitHub - google/cel-spec: Common Expression Language -- specification and binary representation
Common Expression Language -- specification and binary representation - google/cel-spec