تائوری Tauri چیست؟ از تاریخچه تا بررسی

من عاشق electronJs بودم تا وقتی وارد دنیای rust شدم دیدم چه لعبتی اینجا بوده من خبر نداشتم، با من همراه بشید، چون می‌ خوایم در مورد این لعبت گرانبها صحبت کنیم که انگار اومده بگه: «الکترون؟ همون که هر Appاش مثل یه گودزیلا رم سیستمو می‌ خوره؟ ببخشید، ما یه چیز سبک‌ تر آوردیم و اسمش Tauri تائوری هست.»

یه فریم‌ ورک برای ساخت اپلیکیشن‌ های دسکتاپ و حالا موبایل که فرانت‌اندش همون وب خودمونه (HTML، CSS، JS یا هر فریم‌ ورکی که دلتون می‌ خواد) و بک‌اندش زبان قدرتمند Rust. نتیجه‌ اش؟ اپ‌ هایی که به جای ۲۰۰ مگابایت، گاهی زیر ۱۰ مگابایت می‌ شن و رم سیستم رو مثل مهمون ناخوانده نمی‌ خورن.

تاریخچه و ورژن‌ تائوری از ایده تا یک غول کوچک

داستان تائوری از حدود ۲۰۱۹-۲۰۲۰ شروع می‌ شه. دو نفر به اسم‌ های دانیل تامپسون-ایوتو و لوکاس نوگئیرا (و بعداً یه تیم) گفتن خب، چرا باید هر اپ دسکتاپی که با وب‌ تک ساخته می‌ شه یه کرومیوم کامل و نود.js رو با خودش بکشونه؟

مثل اینه که برای رفتن به سوپرمارکت، یه تانک کرایه کنی در حالی که یه موتور سیکلتم کافیه.

ایده تائوری این بود که از WebView سیستم‌عامل استفاده کنیم (همون چیزی که مرورگر سیستم داره) و منطق سنگین رو با Rust بنویسیم که هم امن‌ تره، هم سریع‌ تره و هم به قول احمد ذوقی گًداست یعنی منابع رو زیاد مصرف نمی‌ کنه.

اولین نسخه‌ ها حدود ژوئن ۲۰۲۰ بیرون اومد. بعد از کلی بتا و تست، Tauri 1.0 در تیر ۱۴۰۱ استیبل شد. این نسخه حسابی سر و صدا کرد. اپ‌ ها سبک شدن، امنیت بهتر شد و جامعه شروع کرد به مهاجرت از الکترون. تائوری تحت بنیاد تائوری (داخل Commons Conservancy هلند) اداره می‌ شه و لایسنسش هم MIT و Apache 2.0 هست؛ یعنی راحت می‌ شه استفاده کرد. یکی از مهاجرین منم الان اینجا دارم می‌ نویسم.

بعدش تیم دو سال تقریباً روی نسخه بعدی کار کرد. اوایل ۲۰۲۴ بتاهای نسخه ۲ اومد و بالاخره ۲ اکتبر ۲۰۲۴ نسخه Tauri 2.0 استیبل شد. این نسخه بزرگ‌ ترین تغییرش اضافه کردن پشتیبانی موبایل (اندروید و iOS) بود.

از اون موقع تا حالا (اوت ۲۰۲۶) روی شاخه ۲.x دارن آپدیت می‌ دن و الان حوالی نسخه ۲.۱۱ هستیم. یعنی تائوری دیگه فقط دسکتاپ نیست؛ ادعای cross-platform کامل داره. البته ادعاش اونجوری هم که خودش میگه نیست بررسی می‌کنیم نگران نباشید.

خلاصه تاریخچه اینه که از یه پروژه نسبتاً ناشناخته در ۲۰۲۰ به چیزی با بیش از ۱۱۰ هزار ستاره گیت‌ هاب رسیده. رشدش سریع بوده، چون مردم از «اپ ۲۰۰ مگابایتی برای یه نوت‌ پد ساده» خسته شده بودن.

مقایسه Tauri با ElectronJs؛ گودزیلا در مقابل گربه چابک

تائوری tauri

حالا برسیم به بخش هیجان‌ انگیز یعنی تائوری در مقابل Electron این دو تا انگار دو تا داداشن که یکی همیشه سهم بیشتر غذا رو برمی‌ داره ولی خب تو همه جا خوشتیپ هستش.

الکترون که پشت اپ‌ هایی مثل VS Code، Discord، Slack و خیلی‌ های دیگه هست یه کرومیوم کامل + node.js رو داخل اپ بسته‌ بندی می‌ کنه. نتیجه؟
– سایز اینستالر معمولاً ۸۰ تا ۲۰۰ مگابایت (گاهی بیشتر).
– مصرف رم در حالت بیکار ۱۵۰ تا ۳۰۰ مگابایت یا بیشتر.
– استارتاپ کمی کندتر.
– اما مزیتش اینه که رندرینگ همه‌ جا یکسانه (چون کرومیوم خودش رو می‌ بره)، اکوسیستم پلاگین و مستنداتش خیلی بالغ‌ تره و تیم‌ هایی که فقط جاوا اسکریپت بلدن، بدون دردسر کار می‌ کنن.

مزایای تائوری در مقایسه با الکترون electron

از WebView خود سیستم‌ عامل استفاده می‌ کنه (WebView2 روی ویندوز، WKWebView روی مک و iOS، webkit2gtk روی لینوکس، و WebView اندروید). بک‌اند هم Rust هست. نتیجه:
– سایز اپ معمولاً ۲ تا ۱۰ مگابایت (گاهی حتی کمتر از ۵ مگابایت!).
– مصرف رم خیلی کمتر (اغلب ۳۰ تا ۸۰ مگابایت در حالت بیکار).
– استارتاپ سریع‌ تر.
– امنیت پیش‌ فرض بهتر (مدل permission سخت‌ گیرانه‌ تر؛ دیگه XSS به راحتی نمی‌ تونه فایل‌ های سیستم رو بخونه).

البته تائوری بدون هزینه نیستا باید کمی یا بیشتر از Rust بلد باشید یا حداقل باهاش کنار بیاید. ساخت اولیه ممکنه طولانی‌ تر باشه چون Rust کامپایل می‌ شه و چون از WebView سیستم استفاده می‌ کنه، ظاهر و رفتار جزئی ممکنه بین سیستم‌ عامل‌ها کمی فرق کنه.

هرچند در عمل برای بیشتر اپ‌ ها مشکلی ایجاد نمی‌ کنه ولی خب مسلما تو تجربه کار با تائوری با این مشکلات ظاهری حتی یک بار برخورد جدی خواهید داشت.

خلاصه طنزآمیزش اینه که الکترون مثل اینه که برای مسافرت یه ون بزرگ با تمام امکانات ببری. تائوری مثل اینه که یه موتورسیکلت سبک و سریع سوار شی. اگه رم سیستم و حجم دانلود براتون مهمه و حاضری کمی Rust یاد بگیری، تائوری برندست. اگه تیمتون فقط JS بلده و اکوسیستم بالغ می‌خواید، الکترون هنوز راحت‌ تره.

خیلی‌ ها الان برای پروژه‌ های جدید تائوری رو انتخاب می‌ کنن، مخصوصاً وقتی سایز و پرفورمنس مهم باشه. البته اینم بگم قدرتی که تو برنامه‌ نویسی backend داری شوخی نیست با یه مثال ساده بذار اینجوری بگم شاید شما بتونین یه روزی یه آنتی‌ ویروس ساده با UI web با تائوری بنویسید اما خواب این موضوع رو با node.js نمی‌تونین ببینید، قدرت rust رو در backend دست کم نگیرید.

بررسی بخش موبایل تائوری Tauri

موبایل تائوری از نسخه ۲ پشتیبانی اندروید و iOS رو اضافه کرده. ایده قشنگه: یه کدبیس برای دسکتاپ و موبایل. فرانت‌اند همون وب‌ ویو سیستم (WKWebView روی iOS، WebView روی اندروید) و بک‌اند Rust که می‌ تونه با پلاگین‌ های native (سوییفت و کاتلین) حرف بزنه. ایده‌ ای شبیه فلاتر اما با تفاوت بسیار بزرگ اونم اینه فلاتر موتور render خودشو داره از موتور مرورگر استفاده نمی‌ کنه.

ولی واقعیت رو بگیم؟ هنوز به معنای واقعی کلمه نابالغه. مثل نوزادی که تازه راه افتاده و هر دو قدم یه بار می‌افته. APIها استیبل شدن، ولی:
– همه پلاگین‌ های دسکتاپ روی موبایل کار نمی‌ کنن (بعضی‌ ها اصلاً منطقی نیستن، بعضی‌ ها هنوز پیاده‌ سازی نشدن).
– تجربه توسعه‌ دهنده (DX) هنوز به پای دسکتاپ نمی‌ رسه. تیم خود تائوری هم اعتراف کرده که هنوز کاملاً راضی نیستن و دارن روش کار می‌ کنن.
– برای اپ‌ های ساده (فرم، محتوا، ابزارهای سبک) خوب کار می‌ کنه. ولی اگه بخواید کلی قابلیت native پیچیده (دوربین پیشرفته، سنسورهای خاص، بک‌گراند تسک‌ های سنگین و غیره) داشته باشید، هنوز React Native یا Flutter یا حتی Capacitor بالغ‌ ترن.
– آپدیت OTA هم به صورت پیش‌ فرض مثل اپ‌ های استور نیست (باید باینری جدید بفرستید، هرچند راه‌ حل‌ های شخص ثالث وجود داره).

موبایل تائوری مثل اون رستوران جدیدیه که منوی جذابی داره ولی هنوز بعضی غذاهاش نیمه‌ خام می‌ آد روش به عنوان یه وعده کامل و سالم حساب کنید دل درد می‌ گیرید 😁. برای پروژه‌ هایی که دسکتاپ اصلی هستن و موبایل هم می‌ خواید داشته باشید، گزینه جالبیه.

ولی اگه موبایل اولویت اولتونه، فعلاً بهتره گزینه‌ های بالغ‌ تر رو در نظر بگیرید. تیم تائوری دارن روش کار می‌ کنن و با توجه به سرعت پیشرفتشون، احتمالاً تو یکی دو سال آینده خیلی بهتر می‌ شه.

برنامه‌های Tauri یا تائوری چگونه اجرا می‌ شوند؟

خب، بذار یه کم براتون از پشت پرده بگم که وقتی دکمه‌ اجرای اپ تائوری رو می‌ زنی، دقیقاً چی می‌ شه. چون خیلی‌ ها فکر می‌ کنن فقط یه پنجره‌ قشنگ باز می‌ شه و تموم! نه عزیزم، یه عالمه کار داره زیرش انجام می‌ شه.

اینم چارت کاملش که خودم طراحیش کردم:

برنامه‌های Tauri چگونه اجرا می‌شوند؟

حالا بذار قدم‌ به‌ قدم توضیح بدم، ولی قول بده نخوابی وسطش:

اول از همه، اپ شروع به کار می‌ کنه و Runtime تائوری رو راه میندازه. مثل اینه که موتور ماشین رو روشن کنی قبل از اینکه حتی گاز بدی.

بعدش دو تا چیز مهم با هم ساخته می‌ شن:

  • یه WebView (همون پنجره‌ی مرورگر کوچولو که فرانت‌ اندت توش نشسته)
  • و Rust Backend (مغز متفکر و زورکی برنامه که با زبان راست نوشته شده)

بعد Frontend بارگزاری می‌شه و برنامه رسماً می‌ افته توی چرخه Application Running. از این به بعد دیگه زندگی شروع می‌ شه!

هر اتفاقی که بیفته (کلیک کاربر، تایمر، رویداد سیستم و اینا) می‌ره تو منطق برنامه Application Logic. بعدش یه پیام می‌ فرسته سمت بک‌اند از طریق IPC / Command. انگار فرانت‌ اند داره داد می‌ زنه: «هی رفیق rust! یه کاری برام بکن!»

ولی راست هم که بی‌ گدار به آب نمی‌ زنه. اول Permission Check می‌ کنه. مثل نگهبان دم در که می‌ گه: «مجوز داری یا نه؟» اگه نداشتی،پرتت می‌ کنه بیرون. یکی از نقاط قوت Tauri نسبت به electron.

اگه مجوز اوکی بود، می‌ ره تو Rust Backend Logic و کار اصلی رو انجام می‌ ده. بعدش مستقیم می‌ ره سراغ OS و Native Resources (فایل‌ سیستم، شبکه، سخت‌ افزار و اینا) و نتیجه رو برمی‌ گردونه.

نتیجه می‌ رسه به فرانت‌ اند و UI آپدیت می‌ شه. بعد دوباره برمی‌ گرده سر خونه اولش و این چرخه هی تکرار می‌ شه تا وقتی که اپ رو ببندی.

خلاصه که تائوری مثل یه رستوران شیکه: فرانت‌ اند گارسون خوش‌ تیپه، راست آشپز ماهره و سیستم‌ عامل هم انبار مواد اولیه‌ هست. فقط حواست باشه که گارسون بدون اجازه آشپز، دست به هیچی نزنه!

این بود داستان واقعی اجرای یه اپ تائوری. حالا دیگه می‌ دونی پشت اون پنجره‌ قشنگ چی می‌ گذره.

جمع‌ بندی

تائوری اومده که بگه «می‌ شه App دسکتاپ سبک، امن و سریع ساخت بدون اینکه کرومیوم رو با خودمون بکشیم اینور اونور ». تاریخچه‌ اش نسبتاً جدیده ولی رشدش چشم‌ گیر بوده. در مقایسه با الکترون برنده سایز و پرفورمنس و قدرت و امنیت پیش‌ فرضه، ولی الکترون هنوز از نظر بلوغ اکوسیستم و راحتی برای تیم‌های JS قوی‌ تره. موبایلش هم اضافه شده ولی هنوز جای کار داره.

اگه خسته شدید از اپ‌ هایی که نصف رم لپ‌تاپ‌ تون رو می‌ خورن، یه بار تائوری رو امتحان کنید. ممکنه مثل من عاشقش بشید… یا حداقل دیگه به الکترون با چشم محبت نگاه نکنید! بهتر به تائوری به چشم رقیب الکترون نگاه کنید نه رقیب فلاتر.

حالا برید یه پروژه کوچیک باهاش بسازید و ببینید چقدر سبک درمیاد. قول میدم امتحانش کنید منو دعا کنید البته اگر سمت موبایلش امروز برید احتمالا به من فحش بدید.😁

💬

شاید امروز جواب خیلی از سؤال‌ها را بتوان از AI گرفت، اما تولید مطالب تخصصی، تجربه‌محور و عمیق هنوز به انگیزه نیاز دارد. این نظرات و بازخوردهای شماست که به ما نشان می‌دهد ادامه دادن این مسیر ارزشمند است.

دیدگاه شما چیست؟

نظرات (0)


ارسال نظر

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

عضویت در شبکه‌های اجتماعی

جدیدترین مقالات و نکات برنامه‌نویسی را سریع تر از دیگران مطلع شوید.