وب‌سرویس مجید

پروژه cel-go

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
  • ##google
  • ##CEL
  • ##NonTuringComplete
  • ##GradualTyping
  • ##SafeExecution