// Simple predicates
'tacocat'.startsWith('taco')

// Parameterized predicates over structured data
account.balance >= transaction.withdrawal

// JSON objects
{'sub': '12345678',
 'aud': 'example2.cel.dev',
 'iss': 'https://example1.cel.dev/jwt-issuer'}

// Strongly typed objects
common.GeoPoint{ latitude: 10.0, longitude: -5.5 }

Common Expression Language (CEL) es un lenguaje de expresión rápido, portátil y seguro de ejecutarse en aplicaciones esenciales para el rendimiento. CEL está diseñado para incorporarse en una aplicación, con extensiones específicas de cada aplicación, y es ideal para extender las configuraciones declarativas que tus aplicaciones ya podrían usar.

Usa CEL a fin de usar filtros de lista para llamadas a la API, restricciones de validación en búferes de protocolo y reglas de autorización para solicitudes a la API.

Se acelera la evaluación de expresiones en rutas de acceso críticas para el rendimiento de nanosegundos a microsegundos.
Es fácil de usar para desarrolladores, es liviana y cuenta con una sintaxis común en varios sistemas externos y de Google.
Admite la subdivisión y la extensión, es fácil de incorporar y se adapta a los requisitos de configuración y políticas.
No está completa y solo accede a los datos proporcionados por la aplicación host.

El CEL es ideal para las aplicaciones críticas para el rendimiento, ya que se diseñó con el objetivo de evaluar de forma segura y rápida (de nanosegundos a microsegundos) con costos predecibles. Las expresiones de CEL son especialmente útiles para la lógica de predicado y las transformaciones de datos simples.

El CEL se usa de manera más eficiente en aplicaciones en las que las expresiones se evalúan con frecuencia, pero se modifican con poca frecuencia. Por ejemplo, evaluar una solicitud HTTP con una política de seguridad es un excelente caso de uso para CEL. Una expresión de política de seguridad de CEL tendría un costo de configuración único para validar la expresión y, luego, se evaluaría con mucha frecuencia y a un costo insignificante.

¿Sigues teniendo dudas? Consulta la descripción general de CEL y la definición de lenguaje, o simplemente pregúntanos. Estamos aquí para ayudarte.

¿Quieres ayudar con el proyecto CEL? Contribuye a nuestro código abierto y a nuestra documentación. Nos gustaría contar con tu ayuda.