- The Rust Programming Language
- 1. শুরু করা
- 1.1. ইনস্টলেশন
- 1.2. হ্যালো, ওয়ার্ল্ড!
- 1.3. হ্যালো, কার্গো!
- 2. একটি অনুমান করার গেম প্রোগ্রামিং
- 3. সাধারণ প্রোগ্রামিং ধারণা
- 3.1. ভেরিয়েবল এবং মিউটেবিলিটি
- 3.2. ডেটা টাইপ
- 3.3. ফাংশন
- 3.4. কমেন্ট
- 3.5. কন্ট্রোল ফ্লো
- 4. মালিকানা (Ownership) বোঝা
- 4.1. মালিকানা (Ownership) কী?
- 4.2. রেফারেন্স এবং বরোয়িং
- 4.3. স্লাইস টাইপ
- 5. সম্পর্কিত ডেটা গঠন করতে Struct ব্যবহার
- 5.1. Structs ডিফাইন এবং ইনস্ট্যানশিয়েট করা
- 5.2. Structs ব্যবহার করে একটি উদাহরণ প্রোগ্রাম
- 5.3. মেথড সিনট্যাক্স
- 6. Enums এবং প্যাটার্ন ম্যাচিং
- 6.1. একটি Enum ডিফাইন করা
- 6.2. match কন্ট্রোল ফ্লো কনস্ট্রাক্ট
- 6.3. if let এবং let else দিয়ে সংক্ষিপ্ত কন্ট্রোল ফ্লো
- 7. প্যাকেজ, ক্রেট এবং মডিউল দিয়ে বড় প্রজেক্ট পরিচালনা
- 7.1. প্যাকেজ এবং ক্রেট
- 7.2. স্কোপ এবং প্রাইভেসি নিয়ন্ত্রণের জন্য মডিউল ডিফাইন করা
- 7.3. মডিউল ট্রি-তে আইটেম রেফার করার জন্য পাথ
- 7.4. use কীওয়ার্ড দিয়ে স্কোপে পাথ নিয়ে আসা
- 7.5. মডিউলগুলোকে বিভিন্ন ফাইলে আলাদা করা
- 8. সাধারণ কালেকশন
- 8.1. ভেক্টর দিয়ে ভ্যালুর তালিকা সংরক্ষণ
- 8.2. স্ট্রিং দিয়ে UTF-8 এনকোডেড টেক্সট সংরক্ষণ
- 8.3. হ্যাশ ম্যাপে সংশ্লিষ্ট ভ্যালুসহ কী (key) সংরক্ষণ
- 9. এরর হ্যান্ডলিং
- 9.1. panic! দিয়ে অপরিবর্তনীয় এরর
- 9.2. Result দিয়ে পুনরুদ্ধারযোগ্য এরর
- 9.3. panic! করা বা না করা
- 10. জেনেরিক টাইপ, ট্রেইট এবং লাইফটাইম
- 10.1. জেনেরিক ডেটা টাইপ
- 10.2. ট্রেইট: শেয়ার্ড আচরণ ডিফাইন করা
- 10.3. লাইফটাইম দিয়ে রেফারেন্স যাচাই করা
- 11. স্বয়ংক্রিয় টেস্ট লেখা
- 11.1. কীভাবে টেস্ট লিখতে হয়
- 11.2. টেস্ট কীভাবে চালানো হবে তা নিয়ন্ত্রণ করা
- 11.3. টেস্ট অর্গানাইজেশন
- 12. একটি I/O প্রজেক্ট: একটি কমান্ড লাইন প্রোগ্রাম তৈরি
- 12.1. কমান্ড লাইন আর্গুমেন্ট গ্রহণ করা
- 12.2. একটি ফাইল পড়া
- 12.3. মডুলারিটি এবং এরর হ্যান্ডলিং উন্নত করতে রিফ্যাক্টরিং
- 12.4. টেস্ট ড্রিভেন ডেভেলপমেন্টের মাধ্যমে লাইব্রেরির কার্যকারিতা তৈরি
- 12.5. এনভায়রনমেন্ট ভেরিয়েবল নিয়ে কাজ করা
- 12.6. স্ট্যান্ডার্ড আউটপুটের পরিবর্তে স্ট্যান্ডার্ড এরর-এ এরর মেসেজ লেখা
- 13. ফাংশনাল ল্যাঙ্গুয়েজের বৈশিষ্ট্য: ইটারেটর এবং ক্লোজার
- 13.1. ক্লোজার: অ্যানোনিমাস ফাংশন যা তাদের এনভায়রনমেন্ট ক্যাপচার করে
- 13.2. ইটারেটর দিয়ে আইটেমের একটি সিরিজ প্রসেস করা
- 13.3. আমাদের I/O প্রজেক্টের উন্নতি
- 13.4. পারফরম্যান্স তুলনা: লুপ বনাম ইটারেটর
- 14. কার্গো এবং Crates.io সম্পর্কে আরও
- 14.1. রিলিজ প্রোফাইল দিয়ে বিল্ড কাস্টমাইজ করা
- 14.2. Crates.io-তে একটি ক্রেট প্রকাশ করা
- 14.3. কার্গো ওয়ার্কস্পেস
- 14.4. cargo install দিয়ে Crates.io থেকে বাইনারি ইনস্টল করা
- 14.5. কাস্টম কমান্ড দিয়ে কার্গো এক্সটেন্ড করা
- 15. স্মার্ট পয়েন্টার
- 15.1. হিপের ডেটাতে পয়েন্ট করতে Box<T> ব্যবহার
- 15.2. Deref দিয়ে স্মার্ট পয়েন্টারকে রেগুলার রেফারেন্সের মতো ব্যবহার
- 15.3. Drop ট্রেইট দিয়ে ক্লিনআপের সময় কোড চালানো
- 15.4. Rc<T>, রেফারেন্স কাউন্টেড স্মার্ট পয়েন্টার
- 15.5. RefCell<T> এবং ইন্টেরিয়র মিউটেবিলিটি প্যাটার্ন
- 15.6. রেফারেন্স সাইকেল মেমোরি লিক করতে পারে
- 16. নির্ভীক কনকারেন্সি
- 16.1. একই সাথে কোড চালানোর জন্য থ্রেড ব্যবহার
- 16.2. থ্রেডগুলির মধ্যে ডেটা স্থানান্তরের জন্য মেসেজ পাসিং ব্যবহার
- 16.3. শেয়ার্ড-স্টেট কনকারেন্সি
- 16.4. Send এবং Sync ট্রেইট দিয়ে এক্সটেনসিবল কনকারেন্সি
- 17. অ্যাসিঙ্ক্রোনাস প্রোগ্রামিংয়ের মৌলিক বিষয়: Async, Await, Futures, এবং Streams
- 17.1. ফিউচার এবং অ্যাসিঙ্ক সিনট্যাক্স
- 17.2. অ্যাসিঙ্ক দিয়ে কনকারেন্সি প্রয়োগ
- 17.3. যেকোনো সংখ্যক ফিউচার নিয়ে কাজ করা
- 17.4. স্ট্রিম: ক্রমানুসারে ফিউচার
- 17.5. অ্যাসিঙ্কের জন্য ট্রেইটগুলোর দিকে একটি গভীর দৃষ্টি
- 17.6. ফিউচার, টাস্ক, এবং থ্রেড
- 18. Rust এর অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং বৈশিষ্ট্য
- 18.1. অবজেক্ট-ওরিয়েন্টেড ল্যাঙ্গুয়েজের বৈশিষ্ট্য
- 18.2. বিভিন্ন টাইপের ভ্যালুর জন্য ট্রেইট অবজেক্ট ব্যবহার
- 18.3. একটি অবজেক্ট-ওরিয়েন্টেড ডিজাইন প্যাটার্ন ইমপ্লিমেন্ট করা
- 19. প্যাটার্ন এবং ম্যাচিং
- 19.1. যেসব জায়গায় প্যাটার্ন ব্যবহার করা যেতে পারে
- 19.2. রিফিউটেবিলিটি: কোনো প্যাটার্ন ম্যাচ করতে ব্যর্থ হতে পারে কিনা
- 19.3. প্যাটার্ন সিনট্যাক্স
- 20. অ্যাডভান্সড ফিচার
- 20.1. আনসেফ Rust
- 20.2. অ্যাডভান্সড ট্রেইট
- 20.3. অ্যাডভান্সড টাইপ
- 20.4. অ্যাডভান্সড ফাংশন এবং ক্লোজার
- 20.5. ম্যাক্রো
- 21. চূড়ান্ত প্রজেক্ট: একটি মাল্টিথ্রেডেড ওয়েব সার্ভার তৈরি
- 21.1. একটি সিঙ্গেল-থ্রেডেড ওয়েব সার্ভার তৈরি
- 21.2. আমাদের সিঙ্গেল-থ্রেডেড সার্ভারকে মাল্টিথ্রেডেড সার্ভারে রূপান্তরিত করা
- 21.3. সুন্দরভাবে শাটডাউন এবং পরিচ্ছন্নতা
- 22. পরিশিষ্ট
- 22.1. A - কীওয়ার্ড
- 22.2. B - অপারেটর এবং প্রতীক
- 22.3. C - ডিরাইভেবল ট্রেইট
- 22.4. D - দরকারি ডেভেলপমেন্ট টুল
- 22.5. E - এডিশন
- 22.6. F - বইটির অনুবাদসমূহ
- 22.7. G - Rust কীভাবে তৈরি হয় এবং “নাইটলি Rust”