// 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 استفاده کنید.

ارزیابی بیان تسریع شده در مسیرهای حیاتی عملکرد از نانوثانیه تا میکروثانیه
برنامه نویس پسند، سبک وزن با نحو مشترک در چندین سیستم Google و خارجی.
از زیرمجموعه‌ها و افزونه‌ها پشتیبانی می‌کند، به راحتی قابل جاسازی و متناسب با پیکربندی و الزامات خط‌مشی است.
غیر تورینگ کامل است و فقط به داده های ارائه شده توسط برنامه میزبان دسترسی دارد.

CEL برای کاربردهای حیاتی عملکرد ایده آل است زیرا برای ارزیابی ایمن و سریع (نان ثانیه تا میکروثانیه) با هزینه های قابل پیش بینی طراحی شده است. عبارات CEL به ویژه برای منطق محمول و تبدیل داده های ساده مفید هستند.

CEL در برنامه‌هایی که عبارات اغلب ارزیابی می‌شوند، اما به ندرت اصلاح می‌شوند، کارآمدترین کاربرد را دارد. به عنوان مثال، ارزیابی یک درخواست HTTP در برابر یک خط مشی امنیتی یک مورد استفاده عالی برای CEL است. یک عبارت سیاست امنیتی CEL یک هزینه پیکربندی یک بار برای اعتبار سنجی عبارت خواهد داشت و سپس با هزینه بسیار ناچیز ارزیابی می شود.

هنوز مطمئن نیستید؟ نمای کلی CEL و تعریف زبان را بررسی کنید یا فقط از ما بپرسید! ما خوشحالیم که کمک می کنیم.

آیا می خواهید به پروژه CEL کمک کنید؟ به کد منبع باز و اسناد ما کمک کنید. ما از کمک شما خوشحال می شویم!