کتاب Rust and FFI: Interoperating with C, C++, and Other Languages با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB
دوره آموزشی Rust و FFI: تعامل با C، C++ و زبانهای دیگر Rust و FFI: قفل قابلیت همکاری را باز کنید و دنیای کد را گسترش دهید معرفی دوره: فراتر از مرزهای زبانی آیا شما یک توسعهدهنده مشتاق هستید که به دن...
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره Rust and FFI: Interoperating with C, C++, and Other Languages
موضوع کلی: برنامه نویسی
موضوع میانی: راست (Rust)
📋 سرفصلهای دوره
- 1. مقدمهای بر Rust و FFI
- 2. چرا از Rust برای تعامل با زبانهای دیگر استفاده کنیم؟
- 3. نصب و راهاندازی محیط توسعه Rust
- 4. مبانی Cargo: مدیریت پروژهها و وابستگیها
- 5. متغیرها، تغییرپذیری و سایهزنی (Shadowing) در Rust
- 6. انواع دادههای اسکالر: اعداد صحیح، ممیز شناور، بولین و کاراکتر
- 7. انواع دادههای ترکیبی: Tuple و Array
- 8. مقدمهای بر مالکیت (Ownership) در Rust
- 9. قرضگرفتن (Borrowing) و ارجاعها (References)
- 10. لایفتایمها (Lifetimes): تضمین اعتبار ارجاعها
- 11. برشها (Slices): نماهایی از دادههای مجموعهای
- 12. ساختارها (Structs): تعریف انواع داده سفارشی
- 13. شمارشها (Enums) و تطبیق الگو (Pattern Matching)
- 14. کنترل جریان: if, else, loop, while, for
- 15. مدیریت خطا با Result و Option
- 16. رشتهها در Rust: String و &str
- 17. مجموعهها: Vector, HashMap, String
- 18. ژنریکها (Generics): کد قابل استفاده مجدد
- 19. تریتها (Traits): تعریف رفتارهای مشترک
- 20. کلوژرها (Closures) و ایتریتورها (Iterators)
- 21. اشارهگرهای هوشمند: Box, Rc, RefCell
- 22. مقدمهای بر کد ناامن (Unsafe Rust) و کاربردهای آن
- 23. مبانی FFI: Foreign Function Interface چیست؟
- 24. فراخوانی توابع C از Rust: بلوک `extern "C"`
- 25. معرفی crate `libc` برای انواع داده C
- 26. نگاشت انواع داده اولیه Rust به C
- 27. کار با اشارهگرهای خام: `*const T` و `*mut T`
- 28. رشتههای C: کار با `*const c_char`
- 29. تبدیل امن بین رشتههای Rust و C با `CString` و `CStr`
- 30. ارسال رشتهها از Rust به C
- 31. دریافت رشتهها از C در Rust
- 32. تعریف ساختارهای سازگار با C: `#[repr(C)]`
- 33. تراز و پدینگ حافظه در ساختارهای FFI
- 34. ارسال ساختارها به توابع C (بر اساس مقدار و ارجاع)
- 35. شمارشهای سازگار با C: `#[repr(u*)]`
- 36. کار با آرایهها و بافرهای با اندازه ثابت در مرز FFI
- 37. ارسال برشهای Rust به C به عنوان اشارهگر و طول
- 38. کار با اشارهگرهای تابع C در Rust
- 39. مدیریت حافظه در FFI: فراخوانی `malloc` و `free`
- 40. الگوهای مدیریت حافظه: چه کسی مالک است؟
- 41. مدیریت خطا در مرز FFI: کدهای بازگشتی و `errno`
- 42. اشارهگرهای مات (Opaque Pointers) برای پنهانسازی جزئیات پیادهسازی
- 43. کار با توابع متغیر (Variadic Functions) در C
- 44. استفاده از `build.rs` برای کامپایل کد C
- 45. معرفی `bindgen` برای تولید خودکار 바인딩های Rust
- 46. استفاده پایهای از `bindgen`
- 47. پیکربندی `bindgen` برای انواع داده پیچیده
- 48. مقدمهای بر نوشتن کتابخانههای Rust برای زبانهای دیگر
- 49. پیکربندی Cargo برای ساخت کتابخانه پویا (cdylib)
- 50. صادر کردن توابع Rust با `#[no_mangle]` و `extern "C"`
- 51. طراحی یک API سازگار با C برای کتابخانه Rust
- 52. الگوی شیءگرایی در FFI: ایجاد، استفاده و تخریب اشیاء با اشارهگرهای مات
- 53. پیادهسازی سازندهها و تخریبکنندهها برای API
- 54. ارائه توابع Rust که رشتهها را به C برمیگردانند
- 55. الگوی بافر متعلق به فراخواننده (Caller-Owned Buffer Pattern)
- 56. الگوی حافظه اختصاصدادهشده توسط کتابخانه (Library-Allocated Memory Pattern)
- 57. طراحی مکانیزم مدیریت خطا برای API مبتنی بر C
- 58. جلوگیری از Panic در مرز FFI با `catch_unwind`
- 59. پذیرش کالبکها (Callbacks) از C در Rust
- 60. ایمنی و لایفتایم در کالبکهای FFI
- 61. معرفی `cbindgen` برای تولید خودکار هدرهای C
- 62. مطالعه موردی: ساخت یک کتابخانه Rust و استفاده از آن در C
- 63. فراخوانی کتابخانه Rust از Python با استفاده از `ctypes`
- 64. فراخوانی کتابخانه Rust از Node.js با استفاده از `node-ffi-napi`
- 65. فراخوانی کتابخانه Rust از Ruby با استفاده از `Fiddle`
- 66. فراخوانی کتابخانه Rust از C# با استفاده از P/Invoke
- 67. فراخوانی کتابخانه Rust از Java با استفاده از JNI/JNA
- 68. چالشهای تعامل با C++: Name Mangling و Exceptions
- 69. روش پایه: ایجاد یک لایه واسط C برای کد C++
- 70. استفاده از `bindgen` برای تعامل با C++
- 71. معرفی crate `cxx` برای تعامل امن با C++
- 72. راهاندازی یک پروژه با `cxx`
- 73. تعریف دادههای مشترک بین Rust و C++ با `cxx`
- 74. فراخوانی متدهای C++ از Rust با `cxx`
- 75. فراخوانی توابع Rust از C++ با `cxx`
- 76. مدیریت اشارهگرهای هوشمند C++ (مانند `UniquePtr`) در Rust
- 77. مدیریت امن Exceptionهای C++ در مرز FFI
- 78. موضوعات پیشرفته در FFI: همزمانی و نخها
- 79. ایمنی نخ در FFI: مفاهیم Send و Sync
- 80. قراردادهای فراخوانی (Calling Conventions): cdecl, stdcall, و غیره
- 81. پیوند استاتیک در مقابل پیوند دینامیک کتابخانهها
- 82. FFI و برنامهنویسی ناهمگام (Async/Await)
- 83. بهینهسازی عملکرد در مرز FFI
- 84. استفاده از دستورالعملهای SIMD در مرز FFI
- 85. اشکالزدایی (Debugging) مسائل مربوط به FFI
- 86. تست واحد و یکپارچهسازی برای کدهای FFI
- 87. یکپارچهسازی پیشرفته سیستم ساخت: Cargo و CMake
- 88. کامپایل متقاطع (Cross-Compilation) کتابخانههای FFI
- 89. بستهبندی و توزیع کتابخانههای Rust برای زبانهای دیگر
- 90. مطالعه موردی پیشرفته: بازنویسی یک بخش حساس به عملکرد از یک برنامه C++ با Rust
- 91. بررسی ابزارهای اکوسیستم FFI در Rust
- 92. ایمنی در FFI: بهترین شیوهها و الگوها
- 93. خلاصه دوره و نگاهی به آینده FFI در Rust
- 94. **FFI پایهای: فراخوانی توابع C از Rust و برعکس**
- 95. **تبدیل داده بین Rust و C: مدیریت حافظه و انواع داده ناسازگار**
- 96. **ایجاد کتابخانههای C سازگار با Rust: Export کردن توابع و ساختارهای داده**
- 97. **تعامل با C++: استفاده از `bindgen` و مدیریت پیچیدگیهای API**
- 98. **رسیدگی به خطاها در FFI: استراتژیهای انتقال و مدیریت خطاهای بین زبانی**
- 99. **تست و دیباگ FFI: روشهای اطمینان از صحت و پایداری تعامل**
- 100. **بهینهسازی عملکرد FFI: کاهش سربار و بهبود سرعت تعامل بین زبانها**
تگها:
C#
FFI
Foreign Function Interface
Interop
Programming
Rust
Rust and FFI
Rust programming
Rust و C
برنامه نویسی
زبان C++
زبان های دیگر
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.