প্রকল্প সম্পর্কে
Okay! হলো Scala 3-এর জন্য একটি extensible effects লাইব্রেরি যা Rúnar Bjarnason, Oleg Kiselyov এবং Robert Atkey-এর তত্ত্ব দ্বারা অনুপ্রাণিত। এটি সাইড ইফেক্ট এবং কন্ট্রোল ফ্লো ম্যানেজ করার জন্য একটি ব্যাপক ফ্রেমওয়ার্ক প্রদান করে যার কোনো ডিপেন্ডেন্সি নেই এবং এটি একটি একক সোর্স থেকে JVM (JDK 21+), Scala.js এবং Scala Native সমর্থন করে।
মূল আর্কিটেকচার এবং সক্ষমতা:
- Delimited Control: এটি একটি parameterized continuation monad (`Cont`) এবং delimited control-এর জন্য একটি final tagless ইন্টারফেস ইমপ্লিমেন্ট করে, যা flatMap চেইনের জন্য stack safety নিশ্চিত করে।
- Extensible Effects: এটি initial (Free) এবং final (Church/Eff) উভয় এনকোডিং সমর্থন করে। এতে Reader, Writer (streaming-based), State (typestate সহ), Throws (typed errors), এবং Choice (nondeterminism/backtracking)-এর জন্য বিল্ট-ইন ইফেক্ট অন্তর্ভুক্ত রয়েছে।
- Cross-Platform Async: এটি `spawn`, `par`, `race`, এবং `timeout` সক্ষমতা সহ একটি সার্বজনীন `Async` ইফেক্ট প্রদান করে। এটি JVM-এ virtual threads (Loom) এবং JS-এ event loop ব্যবহার করে।
- High-Performance Streams: এটি একাধিক কনজাম্পশন মোড সহ codata হিসেবে স্ট্রিম ইমপ্লিমেন্ট করে, যার মধ্যে একটি "Staged" মোড রয়েছে যা কম্পাইল-টাইম ফিউশনের মাধ্যমে বেঞ্চমার্কে অন্যান্য ইকোসিস্টেম লাইব্রেরির তুলনায় উল্লেখযোগ্যভাবে ভালো পারফরম্যান্স দেখায়।
- Concurrency: এতে fibers, backpressure সহ channels এবং কর্মীদের মধ্যে chunked sources ছড়িয়ে দেওয়ার জন্য একটি ডিস্ট্রিবিউটেড রানটাইম (`okay-cluster`) রয়েছে।
আপার-লেয়ার মডিউলসমূহ:
- Text: স্ট্রিমিং lexing, ইনক্রিমেন্টাল পার্সিং এবং JSON/CBOR/Markdown-এর জন্য একটি ইউনিফাইড স্কিমা।
- AI/Models: LLMs, RAG (Retrieval-Augmented Generation) এবং এজেন্টদের জন্য ইন্টিগ্রেশন, যার মধ্যে Model Context Protocol (MCP)-এর একটি পূর্ণাঙ্গ ইমপ্লিমেন্টেশন অন্তর্ভুক্ত।
- UI: একটি view-as-value সিস্টেম যা টার্মিনাল, React অথবা টেস্ট হোস্ট-এ রেন্ডার করতে পারে।
- Security: জিরো-ডিপেন্ডেন্সি অথোরাইজেশন, JWT এবং OAuth2 ক্লায়েন্ট ফ্লো।
- Wires: JDK, Jetty অথবা Netty-র মাধ্যমে REST এবং WebSocket সমর্থন।
ইন্টারঅপারেবিলিটি: এই লাইব্রেরিটি cats, ZIO, kyo, fs2, Kafka, Spark, Flink এবং JDBC-এর জন্য ব্রিজ প্রদান করে।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.