Tokio (software)
টোকিও হল রাস্ট প্রোগ্রামিং ভাষার জন্য একটি সফ্টওয়্যার লাইব্রেরি। এটি একটি রানটাইম এবং ফাংশন সরবরাহ করে যা অ্যাসিঙ্ক্রোনাস আই/ও ব্যবহার করতে সক্ষম করে, যা কাজ সমাপ্তির ক্ষেত্রে সমান্তরালতার অনুমতি দেয়। টোকিও 2016 সালের আগস্টে একটি সাধারণ-উদ্দেশ্যমূলক প্রোগ্রামিং ভাষা রাস্টের জন্য মুক্তি পায়। কার্ল লারচে দ্বারা বিকশিত, টোকিও একটি নেটওয়ার্ক অ্যাপ্লিকেশন কাঠামো হিসাবে শুরু হয়েছিল এবং সকেট শ্রবণ এবং সম্প্রচারের মতো বৈশিষ্ট্যগুলিকে সমর্থন করে, যা কম্পিউটারের মধ্যে বার্তা স্থানান্তর করার অনুমতি দেয়। ইতিহাস টোকিও 2016 সালের আগস্টে কার্ল লারচে দ্বারা ফিউচারের উপর নির্মিত রাস্টের জন্য একটি নেটওয়ার্ক অ্যাপ্লিকেশন কাঠামো হিসাবে শুরু হয়েছিল, যা নেটওয়ার্ক-ভিত্তিক মিডলওয়্যার এবং একটি অ-ব্লকিং, বা অ্যাসিঙ্ক্রোনাস, চুল্লিটির প্রস্তুতির আগ্রহ বাস্তবায়নের অনুমতি দেয়। টোকিও জাভা ভার্চ্যুয়াল মেশিনের (জেভিএম) জন্য টুইটারে বিকশিত একটি স্কালা-ভিত্তিক অ্যাসিঙ্ক্রোনাস রিমোট প্রসিডিউর কল (আরপিসি) সিস্টেম ফিনাগল দ্বারা অনুপ্রাণিত হয়েছিল, যা বিতরণকৃত সিস্টেমগুলিকে একটি জেভিএম-এর মধ্যে যোগাযোগ করার অনুমতি দেয়। ইপোল (লিনাক্স), কেকিউ (ফ্রিবিএসডি) এবং ইনপুট/আউটপুট কমপ্লিশন পোর্ট (আইওসিপি) এপিআই (উইন্ডোজ)-এর মতো সিস্টেম কলগুলি ব্যবহার করে টোকিও নিম্ন-স্তরের রাস্ট ক্রেট মিয়ো ব্যবহার করে। "টোকিও" নামটি টোকিও এবং মিও থেকে এসেছে। টোকিও-র প্রাথমিক সংস্করণটি 2017 সালের জানুয়ারিতে মুক্তি পায়, তারপরে 2020 সালের ডিসেম্বরে একটি সম্পূর্ণ সংস্করণ মুক্তি পায়। 2017 সালে, টোকিও মোজিলা ওপেন সোর্স সাপোর্ট ফান্ড থেকে একটি অনুদান পেয়েছিল। 2021 সালের এপ্রিলে, টোকিও তার প্রথম প্রদত্ত অবদানকারী, অ্যালিস রাইলকে প্রকল্পটি বিকাশ এবং এর ব্যবহারকারীদের সহায়তা উভয় কাজের জন্য অর্থায়ন করেছিল। যদিও রাস্ট 2019 সালের নভেম্বরে প্রকাশিত সংস্করণ 1.39 থেকে অ্যাসিঙ্ক্রোনাস ফাংশনগুলিকে সমর্থন করেছে, এটি তাদের কার্যকর করার জন্য কোনও সুবিধা প্রদান করে না, সেই উদ্দেশ্যে একটি বাহ্যিক রানটাইমের প্রয়োজন হয়। টোকিও একটি রানটাইম প্রদান করে যা একটি মাল্টি-থ্রেডেড ওয়ার্ক স্টিলিং সিডিউলার ব্যবহার করে। রাস্টের ভবিষ্যতগুলি অলসভাবে মূল্যায়ন করা হয়, কোনও কাজ করার আগে ফাংশনগুলিকে কল করার প্রয়োজন হয়। যখন. ওয়েইট আহ্বান করা হয়, টোকিও-র রানটাইম তার আই/ও শেষ না হওয়া পর্যন্ত মূল ভবিষ্যতকে বিরতি দিতে পারে এবং আরও প্রক্রিয়াকরণের জন্য প্রস্তুত একটি ভিন্ন কাজকে বিরতি দিতে পারে। টোকিও ব্যবহারকারীদের মধ্যে ডিসকর্ড এবং এডাব্লুএস ল্যাম্বডার পিছনে উন্নয়ন দলগুলি অন্তর্ভুক্ত রয়েছে। জাভাস্ক্রিপ্ট রানটাইম Node.js, যা লিবুভ লাইব্রেরি ব্যবহার করে, তার তুলনায় জাভাস্ক্রিপ্ট এবং টাইপস্ক্রিপ্ট রানটাইম ডেনো হুডের নিচে টোকিও ব্যবহার করে। বৈশিষ্ট্য অ্যাসিঙ্ক্রোনাস কোড টোকিও একটি অ্যাসিঙ্ক্রোনাস রানটাইম তৈরির মাধ্যমে রাস্টে অ্যাসিঙ্ক্রোনাস ফাংশন ব্যবহারের অনুমতি দেয়। এটি #[টোকিওঃঃ প্রধান] ম্যাক্রোর মাধ্যমে সম্পন্ন করা যেতে পারে। উদাহরণস্বরূপঃ #[টোকিওঃ: প্রধান] অ্যাসিঙ্ক এফএন প্রধান ()-> ফলাফল <()> {ইউআরএল = "https://en.wikipedia.org"; লেখা = রেকুয়েস্টঃঃ পান (ইউআরএল). অপেক্ষা?. পাঠ্য (). অপেক্ষা? ; প্রিন্ট! ("{}", টেক্সট); ওকে (())} এই উদাহরণে, ইংরেজি উইকিপিডিয়ার জন্য হাইপারটেক্সট মার্কআপ ল্যাঙ্গুয়েজ (এইচটিএমএল) অনুরোধ করতে রেকওয়েস্ট ক্রেট ব্যবহার করা হয়। অনুরোধটি অবিলম্বে পরিচালিত না হয় তা নিশ্চিত করার জন্য, টোকিও ফাংশন কলটিকে একটি অ্যাসিঙ্ক্রোনাস রানটাইমে মোড়িয়ে দেয়, প্রিন্টলন () কল করার আগে অনুরোধটি সম্পূর্ণ হওয়ার জন্য অপেক্ষা করে। টোকিওতে রাস্ট স্ট্যান্ডার্ড লাইব্রেরির একটি সংস্করণও রয়েছে যা অ্যাসিঙ্ক্রোনাসভাবে ব্যবহারের জন্য ডিজাইন করা হয়েছে। উদাহরণস্বরূপ, টোকিওঃ: এফএসঃ: রিড _ টু _ এন্ড (), যা একটি ফাইলের বিষয়বস্তু পড়ে, এটি এস. টি. ডিঃঃ এফএসঃ: রিড _ টু _ এন্ড ()-এর অ্যাসিঙ্ক্রোনাস সংস্করণ। এছাড়াও, টোকিও আইও-ইউরিং নামে একটি পৃথক ক্রেটে একটি লিনাক্স অ্যাসিঙ্ক্রোনাস আই/ও সিসকাল ইন্টারফেস সমর্থন করে। কম্পাইল-টাইম গ্রিন-থ্রেডিং টোকিও ব্যবহারকারীদের একটি টোকিওঃ: স্পন () ফাংশন ব্যবহার করে সবুজ থ্রেড সহ কাজগুলি তৈরি করার অনুমতি দেয়। সবুজ থ্রেডগুলি ব্যবহারকারী স্তরে চলে, যখন স্থানীয় থ্রেডগুলি সর্বদা উপলব্ধ থাকে না তখন সমান্তরালতা প্রদান করে। রাস্টের পূর্ববর্তী সংস্করণগুলি সবুজ থ্রেডিং প্রয়োগ করেছিল; এই কার্যকারিতাটি রাস্ট 1-এ সরানো হয়েছিল। ফিউচারের বিপরীতে, কাজগুলি. অপেক্ষা করার প্রয়োজন হয় না, কারণ একটি থ্রেড উপলব্ধ থাকলে কাজটি স্বয়ংক্রিয়ভাবে কার্যকর হবে। সকেট শ্রবণ টোকিও একটি নন-ব্লকিং পদ্ধতির মাধ্যমে সকেটে শুনতে সক্ষম। বিশেষত, টিসিপি-লিস্টেনার কাঠামো একটি ট্রান্সমিশন কন্ট্রোল প্রোটোকল (টিসিপি) সকেট শ্রোতাকে একটি ঠিকানার সাথে আবদ্ধ করে এবং অ্যাসিঙ্ক্রোনাসভাবে ফাংশনটি সম্পাদন করে। সম্প্রচার টোকিও একটি সম্প্রচার চ্যানেলের ধরন প্রদান করে, যা একাধিক রিসিভারের কাছে বার্তা সম্প্রচারের অনুমতি দেয়। একটি বার্তা পাঠানোর পরে, এটি এই ধরনের প্রাপকদের দ্বারা গৃহীত হয়। এটি অন্যান্য অ্যাপ্লিকেশনের মধ্যে রিয়েল-টাইম যোগাযোগ এবং বিতরণ ব্যবস্থাকে সক্ষম করে। রেফারেন্স বাহ্যিক লিঙ্ক টোকিও crates.io 2020 সফ্টওয়্যার এমআইটি লাইসেন্স ব্যবহার করে রাস্ট ফ্রি কম্পিউটার লাইব্রেরি সফ্টওয়্যারে প্রোগ্রাম করা ফ্রি সফ্টওয়্যার