google/cel-go
کاربرد:
این یک کتابخانه گو (Go) برای ارزیابی عبارات سریع و امن است که از CEL (Common Expression Language) گوگل پشتیبانی میکند.
این زبان غیر تورینگ کامل است و برای سناریوهایی که نیاز به امنیت، قابلیت حمل و عملکرد بالا دارند مناسب است.
در چه شرایطی بهتره استفاده شود؟
وقتی به دنبال یک موتور عبارت سبک، قابل اعتماد و قابل تنظیم هستی که بتواند عبارات را بدون اجرای کد دلخواه (که خطرناک است) ارزیابی کند.
مخصوصاً در سیستمهایی مثل احراز هویت، فیلتر کردن درخواستها، قوانین تصمیمگیری و پلیسیهای امنیتی.
چند مثال از موارد استفاده
- بررسی اینکه آیا یک کاربر دسترسی به یک منبع خاص دارد: user.role == 'admin' && resource.active
- فیلتر کردن رویدادها بر اساس شرایط: event.type == 'login' && event.country != 'IR'
- اعتبارسنجی ورودی در APIها با قوانین پویا بدون نیاز به کامپایل مجدد کد
- ##expression
- ##GoLang
- ##Security
- ##PolicyEngine
- ##FastEvaluation
- ##CEL
- ##NonTuringComplete
- ##GradualTyping
- ##SafeExecution
