প্রকল্প সম্পর্কে
asupersync হলো Rust-এর জন্য একটি async রানটাইম, যা এই নীতির উপর ভিত্তি করে ডিজাইন করা হয়েছে যে সঠিকতা রানটাইমে প্রয়োগ করার বদলে কাঠামোগত হওয়া উচিত। এটি অ্যাসিঙ্ক্রোনাস Rust কোড লেখার জন্য একটি ভিত্তি প্রদান করে, যেখানে নিরাপত্তার বৈশিষ্ট্যগুলো টাইপ সিস্টেম এবং টাস্ক মালিকানা মডেলে অন্তর্ভুক্ত।
মূল ডিজাইন স্তম্ভ:
- Region-মালিকানাধীন টাস্ক: টাস্কগুলো স্পষ্ট region-এর সাথে আবদ্ধ, যা ডেভেলপারদের টাস্কের জীবনকালের উপর সূক্ষ্ম নিয়ন্ত্রণ দেয় এবং async প্রেক্ষাপটে লিক বা dangling রেফারেন্স প্রতিরোধ করে।
- Cancel-correct প্রোটোকল: বাতিলকরণ এমন প্রোটোকলের মাধ্যমে পরিচালিত হয় যা cleanup, রিসোর্স মুক্তি এবং state-এর সামঞ্জস্য নিশ্চিত করে, এমনকি টাস্ক মাঝপথে বাতিল হলেও। এটি Rust async-এর ক্লাসিক সমস্যা এড়ায় যেখানে বাতিল হওয়া future-গুলো অনির্ধারিত অবস্থায় পার্শ্বপ্রতিক্রিয়া রেখে যায়।
- Capability-gated effects: পর্যবেক্ষণযোগ্য প্রভাব উৎপাদনকারী অপারেশনগুলো capability টোকেনের পিছনে সীমাবদ্ধ। শুধুমাত্র উপযুক্ত capability ধারণকারী কোডই প্রভাবটি সম্পাদন করতে পারে, যা পার্শ্বপ্রতিক্রিয়াগুলোকে স্পষ্ট এবং কম্পাইল টাইমে নিরীক্ষণযোগ্য করে তোলে।
- Deterministic replay টেস্টিং: রানটাইম deterministic replay সমর্থন করে, যা টেস্টগুলোকে async execution ট্রেস রেকর্ড এবং পুনরায় চালানোর অনুমতি দেয়। এটি non-deterministic concurrency বাগগুলোকে পুনরুৎপাদনযোগ্য এবং ডিবাগযোগ্য করে তোলে।
লাইব্রেরিটি সেইসব ডেভেলপারদের লক্ষ্য করে যারা এমন সিস্টেম তৈরি করেন যেখানে async সঠিকতা অত্যন্ত গুরুত্বপূর্ণ—যেমন infrastructure সেবা, concurrent সিস্টেম এবং নিরাপত্তা-সংবেদনশীল অ্যাপ্লিকেশন—যেখানে প্রচলিত async রানটাইমগুলো নীরব সঠিকতা লঙ্ঘনের অনুমতি দিতে পারে। এটি MIT লাইসেন্সের অধীনে প্রকাশিত।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.