// 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) — это быстрый, переносимый и безопасный язык выражений для приложений, где производительность критична. CEL предназначен для встраивания в приложение с расширениями, специфичными для приложения, и идеально подходит для расширения декларативных конфигураций, которые ваши приложения уже могут использовать.
Используйте CEL для таких вещей, как фильтры списков для вызовов API, ограничения проверки буферов протокола и правила авторизации для запросов API.
Быстрый
Портативный
Расширяемый
Безопасно
Подходит ли CEL для вашего проекта?
CEL идеально подходит для приложений, критичных к производительности, поскольку он был разработан для безопасной и быстрой оценки (от наносекунд до микросекунд) с предсказуемыми затратами. Выражения CEL особенно полезны для логики предикатов и простых преобразований данных.
CEL наиболее эффективно используется в приложениях, где выражения часто вычисляются, но редко изменяются. Например, оценка HTTP-запроса на соответствие политике безопасности — отличный вариант использования CEL. Выражение политики безопасности CEL будет иметь единовременную стоимость настройки для проверки выражения, а затем очень часто оцениваться с незначительными затратами.
Все еще не уверены? Ознакомьтесь с обзором CEL и определением языка или просто спросите нас! Мы рады помочь.