عن المشروع

Okay! هي مكتبة تأثيرات قابلة للتوسيع لـ Scala 3 مستوحاة من نظريات Rúnar Bjarnason و Oleg Kiselyov و Robert Atkey. وهي توفر إطار عمل شاملاً لإدارة التأثيرات الجانبية وتدفق التحكم دون أي تبعيات، مع دعم JVM (JDK 21+) و Scala.js و Scala Native من مصدر واحد. البنية الأساسية والقدرات: - التحكم المحدود (Delimited Control): تنفيذ monad استمرارية مُعلم (`Cont`) وواجهة final tagless للتحكم المحدود، مما يضمن سلامة المكدس لسلاسل flatMap. - التأثيرات القابلة للتوسيع: تدعم ترميزات initial (Free) و final (Church/Eff). وتتضمن تأثيرات مدمجة لـ Reader و Writer (القائم على البث) و State (بما في ذلك typestate) و Throws (الأخطاء المحددة النوع) و Choice (عدم الحتمية/التراجع). - العمليات غير المتزامنة عابرة للمنصات: توفر تأثير `Async` عالمي مع قدرات `spawn` و `par` و `race` و `timeout`. وتستفيد من الخيوط الافتراضية (Loom) على JVM وحلقة الأحداث (event loop) على JS. - تدفقات عالية الأداء: تنفيذ التدفقات كـ codata مع أنماط استهلاك متعددة، بما في ذلك وضع "Staged" للدمج في وقت التجميع، والذي يتفوق بشكل كبير على المكتبات الأخرى في النظام البيئي وفقاً للاختبارات المرجعية. - التزامن: تتميز بوجود fibers، وقنوات مع ضغط عكسي (backpressure)، وبيئة تشغيل موزعة (`okay-cluster`) لتوزيع المصادر المجزأة عبر العمال. الوحدات في الطبقات العليا: - Text: تحليل لغوي تدفقي، وتحليل تزايدي، ومخطط موحد لـ JSON/CBOR/Markdown. - AI/Models: تكامل لنماذج LLMs و RAG (توليد معزز بالاسترجاع) والوكلاء، بما في ذلك تنفيذ كامل لبروتوكول Model Context Protocol (MCP). - UI: نظام view-as-value يمكنه العرض في النهايات الطرفية (terminals) أو React أو مضيفات الاختبار. - Security: تفويض بدون تبعيات، و JWT، وتدفقات عميل OAuth2. - Wires: دعم REST و WebSocket عبر JDK أو Jetty أو Netty. التوافق التشغيلي: توفر المكتبة جسوراً لـ cats و ZIO و kyo و fs2 و Kafka و Spark و Flink و JDBC.