Tauri, ক্রস প্ল্যাটফর্ম ডেস্কটপ অ্যাপ্লিকেশন ডেভেলপমেন্ট এ ইলেকট্রন জেএস এর বেটার অল্টারনেটিভ!

আমাদের জাভাস্ক্রিপ্ট কমিউনিটিতে যখনই ডেস্কটপ অ্যপ্লিকেশন ডেভেলপমেন্ট এর কথা উঠে আসে তখন সবাই ইলেকট্রন জেএসকেই সবকিছুর উপরে স্থান দিবেন। এমনকি ইলেকট্রন দিয়ে বানানো অসংখ্য প্র্যাক্টিক্যাল, রিয়েল লাইফ রানিং প্রোজেক্টও আছে, অর্থাৎ এটা আসলে যথেষ্ট ক্যাপাবলও। বাট অতি শীগ্রই ইলেকট্রনকে পিছনে ফেলে দিতে পারে নতুন আরেকটা ফ্রেমওয়ার্ক। আজকে আমি আপনাদেরকে সেই ফ্রেমওয়ার্কের সাথে পরিচয় করিয়ে দিবো। হতে পারে এটার সম্পর্কে জানার পর আপনারা ইলেকট্রন বেইসড প্রোজেক্টগুলোকে এটাতেও মুভ করে ফেলতে পারেন। কারণ জিনিসটা is too good to be true!

এই ফ্রেমওয়ার্কটার নাম হচ্ছে Tauri, Tauri ছোটখাটো ফাস্ট, সিকিউর ক্রস প্ল্যাটফর্ম অ্যাপ্লিকেশন ডেভেলপমেন্ট এর (ডেস্কটপ অ্যাপ্লিকেশন ডেভেলপমেন্ট বলি নাই, কারণ তাদের টার্গেট ডেস্কটপ, মোবাইলসহ সব জায়গায় ডেভেলপমেন্ট এ সাহায্য করা) জন্য ইউজ করা যায়। এখানে যেহেতু ইলেকট্রন এর কথা উঠে এসেছে, তাই আমরা একটু তুলনা করে দেখবো Tauri কেন ইলেকট্রন থেকে বেটার হতে পারেঃ

  • ছোটো সাইজের বান্ডেলঃ আপনারা যারা ইলেকট্রনে অ্যাপ ডেভেলপ করেছেন তারা জানেন যে ইলেকট্রনে বান্ডেল সাইজ ১০০-২০০ এমবি পর্যন্ত হয়ে যায়। একদম ছোটোখাটো অ্যাপ হলেও ৯০-১০০ এমবির নিচে হয় না। অন্যদিকে Tauri দিয়ে ২-৩ এমবি সাইজের অ্যাপও ডেভেলপ করা যায়। আপনার অ্যাপ্লিকেশনের অ্যাকচুয়াল ফাংশানালিটির উপর বান্ডেল সাইজ বাড়বে। এর মেইন কারণ হচ্ছে ইলেকট্রন বান্ডেল করার সময় প্রত্যেক অ্যাপ্লিকেশনের সাথে ক্রোমিয়াম ইন্সটান্স আর নোড জেএস এর রানটাইমও একসাথে বান্ডেল করে। অন্যদিকে Tauri ন্যাটিভ WebView ইউজ করে, আর লাইটওয়েট রাস্ট বেইসড ব্যাকেন্ডে ইউজ করে।
  • মেমরি ইউসেজ কমঃ Tauri এর যেহেতু ফুল ক্রোমিয়াম ইন্সটান্স লাগে না প্রত্যেক অ্যাপ্লিকেশনের সাথে, তাই এটা বাই ডিফল্টই মেমরি কম ইউস করে। এটার প্রভাব অ্যাকচুয়াল অ্যাপ্লিকেশনে বেশ ভালোভাবেই বুঝা যায়।
  • ন্যাটিভ অ্যাপ্লিকেশনের মতো এক্সপেরিয়েন্সঃ Tauri ন্যাটিভ WebView ইউজ করে বলে এই এটাকে অপারেটিং সিস্টেমের সাথে আরো বেশী ইন্টিগ্রেটেড মনে হয়, ন্যাটিভ লুক আর ফীলও পাওয়া যায়।
  • ফ্লেক্সিবল আর Rust এর সাহায্যে বিভিন্ন সিস্টেম অ্যাপিআই বিউল্ডঃ Tauri এর সিস্টেমের সাথে ইন্টার‍্যাক্ট করার জন্য বিল্ট-ইন অ্যাপিআই/প্লাগিন আছে। তবে ইলেকট্রনের তুলনায় সেগুলো কিছুটা কম হলেও ব্যাকেন্ডে Rust ইউজ করে Rust এর বিশাল ইকোসিস্টেম + বেনেফিটের সর্বোচ্চ ব্যবহার করা যায়। Rust এর লার্নিং কার্ভ একটু জটিল, বাট অ্যাজ এ ব্যাকেন্ড ল্যাঙ্গুয়েজে খুবই পাওয়ারফুল বলতে হবে। কারণ ইলেকট্রনে আপনি ব্যাকেন্ডে কিছু করলে সেটা নোড জেএস রানটাইমের সাহায্যে চলে, অন্যদিকে Tauri তে Rust বান্ডেল হওয়ার সময় সিমপ্লি অপারেস্টিং সিস্টেম অনুযায়ী ন্যাটিভলি এক্সেকিউটেবল কোডে কম্পাইল্ড হয়ে যায়। ফলাফলে Tauri তে ব্যাকেন্ডের কোড রান করার জন্য আলাদা রানটাইম লাগে না, এগুলো ন্যাটিভলিই রান হয়। ফলাফলে কম বান্ডেল সাইজ, বেটার পারফর্ম্যান্স!
  • বেটার ডেভেলপার এক্সপেরিয়েন্সঃ Tauri এর ওভারল ডেভেলপার এক্সপেরিয়েন্স খুবই ভালো এবং তারা সেটা কন্টিনিউয়াসলি ইমপ্রুভমেন্ট এর মধ্যেই রাখছে। আপনি Rust না জানলেও জাস্ট ফ্রন্টএন্ড বেইসড অ্যাপ্লিকেশন ডেভেলপমেন্ট এখনই শুরু করতে পারবেন আপনার পছন্দের যেকোনো ফ্রন্টএন্ড লাইব্রেরী বা ফ্রেমওয়ার্ক দিয়ে। এই জিনিসটা এতোটাই ইজি!

আশা করি আমার এই লেখা থেকে আপনারা যারা ডেস্কটপ অ্যাপ্লিকেশন ডেভেলপমেন্ট এ আছেন অথবা করবেন করবেন ভাবছেন তারা উপকৃত হবেন। ছোটো ছোটো অ্যাপ বানাতে গিয়ে ৯০-১০০ এমবি বান্ডেল সাইজ করার কি দরকার? এগুলোর জন্য এখন Tauri ই যথেষ্ট। আর যদি কষ্ট করে Rust টাও শিখে নিতে পারেন তাহলে আরামসে যেকোনোধরেনর অ্যাপ্লিকেশনই ডেভেলপ করে ফেলতে পারবেন! Tauri নিয়ে লার্নিং রিসোর্স খুব কমই আছে বর্তমানে, বাট জিনিসটা এতোটাই ডেভেলপার ফ্রেন্ডলি করেছে যে ডকস দেখে দেখেই কাজ করে ফেলা যায়।

Tauri এর অফিশিয়াল ওয়েবসাইটঃ https://v2.tauri.app/

কিছু Tauri দিয়ে বানানো অ্যাপ্লিকেশনঃ https://madewithtauri.com/

Rust এর অফিশিয়াল ওয়েবসাইটঃ https://www.rust-lang.org/

Rust এর প্যাকেজ ডিরেক্টরিঃ https://crates.io/

পোস্টটি ভালো লেগে থাকলে অবশ্যই শেয়ার করবেন, অনেক অনেক ধন্যবাদ!

7 Likes