چرا در پروژههای دسکتاپ از فریمورک Tauri استفاده میکنیم؟

بررسی فنی مزایای فریمورک Tauri در توسعه نرمافزارهای دسکتاپ؛ مقایسه امنیت، مصرف حافظه رم و سرعت اجرا نسبت به الکترون در تجربیات تیم آبیدرنت.
برای سالها فریمورکهای مبتنی بر وب مانند Electron گزینه اصلی ساخت اپلیکیشنهای دسکتاپ چندسکویی (Cross-platform) بودند. با این حال، بستهبندی کامل یک نسخه از موتور کرومیوم (Chromium) و نودجیاس با هر نرمافزار، چالشهایی بزرگ از جمله مصرف سنگین حافظه رم (RAM)، حجم بسیار زیاد فایل نصبی و سطوح حمله امنیتی گسترده ایجاد میکرد. برای عبور از این گلوگاهها، ما در پروژههای مهندسی خود به سراغ فریمورک Tauri رفتیم.
در این یادداشت فنی، دلایل کلیدی مهاجرت و مزایای معماری Tauri را مرور میکنیم:
۱. معماری سبک بر پایه وبویو نیتیو (Native WebView) بزرگترین تفاوت فریمورک Tauri با اکوسیستمهای پیشین، حذف انجین سنگین کرومیوم از بسته نرمافزاری است:
- استفاده از رندرر سیستمعامل: تائوری به جای حمل مرورگر اختصاصی، از وبویو پیشفرض سیستمعامل (WebView2 در ویندوز، WebKitGTK در لینوکس و WebKit در macOS) استفاده میکند.
- کاهش چشمگیر حجم فایل نهایی: خروجی بیلد یک نرمافزار در این معماری بهجای فایلهای سنگین بالای ۱۰۰ مگابایت، اغلب کمتر از ۱۰ تا ۱۵ مگابایت است.
- مصرف حداقلی منابع: به دلیل عدم اجرای پردازشهای پسزمینه نودجیاس، مصرف حافظه رم در زمان اجرا به کمتر از ۵۰ مگابایت کاهش مییابد.
۲. قدرت و پایداری زبان Rust در لایه بکاند لایه هسته و منطق سیستمی در تائوری توسط زبان برنامهنویسی Rust مدیریت میشود:
- ایمنی حافظه (Memory Safety): سیستم تحلیل مالکیت (Ownership System) در Rust خطاهای رایج کرش، نشت حافظه (Memory Leaks) و Race Conditionها را در زمان کامپایل متوقف میسازد.
- سرعت در لایه سیستم: پردازشهای محاسباتی سنگین، ارتباط با پورتهای سختافزاری، سیستم فایل یا دیتابیسهای محلی، همگی با سرعت اجرایی معادل زبان C پیادهسازی میشوند.
۳. امنیت در لایه طراحی (Security by Design) در ارزیابیهای امنیتی، برنامههای دسکتاپی که تکنولوژی وب را اجرا میکنند همواره مستعد آسیبپذیریهای جدی نفوذ بودهاند. فریمورک Tauri این مسئله را در سطح معماری مهار کرده است:
- سیاست جداسازی دقیق (Isolation Pattern): پیامها و درخواستهای فرانتاند پیش از رسیدن به بکاند از یک لایه قرنطینه عبور میکنند تا اجرای کدهای تزریقی (XSS) امکان دسترسی به سیستمعامل را نداشته باشد.
- مدل دسترسی حداقلی (Least Privilege): هیچ API سیستمی (مانند خواندن فایل، کلیپبورد یا شل) به صورت پیشفرض باز نیست؛ بلکه هر متد باید صریحاً در فایل کانفیگ مجوز بگیرد.
۴. انعطاف کامل در لایه فرانتاند در تائوری تیم مهندسی هیچ محدودیتی در انتخاب فریمورک کاربری ندارد. چه از React و Next.js استفاده شود و چه از Vue یا Svelte، خروجی استاتیک وب مستقیماً با لایه باینری نیتیو هماهنگ میشود.
نتیجهگیری انتخاب ابزار در توسعه نرمافزار باید پاسخگوی سرعت، بهینگی منابع و امنیت پایدار باشد. بهرهگیری از فریمورک Tauri به ما اجازه میدهد بدون فدا کردن انعطاف وب در رابط کاربری، محصولاتی سبک، ایمن و متناسب با استانداردهای مدرن دسکتاپ تحویل دهیم.