moonlightkzการสร้างแอปพลิเคชันข้ามแพลตฟอร์ม (Cross-platform) ได้กลายเป็นหนึ่งในแนวทางหลักของนักพัฒนาซอฟต์แวร์ยุคปัจจุบัน เนื่องจากช่วยลดเวลา และต้นทุนในการพัฒนาซอฟต์แวร์สำหรับหลาย ระบบปฏิบัติการ (OS) พร้อมกัน ในอดีต Electron เคยเป็น เฟรมเวิร์ก (Framework) ยอดนิยมที่ช่วยให้นักพัฒนาเว็บสามารถสร้างโปรแกรมสำหรับเดสก์ท็อป ด้วย HTML, CSS และ JavaScript ได้ อย่างไรก็ตาม Electron มักถูกวิพากษ์วิจารณ์เรื่องการใช้ทรัพยากร หน่วยความจำหลัก (RAM) สูง และขนาดไฟล์ติดตั้งที่ใหญ่เกินจำเป็น
เพื่อแก้ปัญหานี้ Tauri จึงถูกพัฒนาขึ้นในฐานะโอเพ่นซอร์สเฟรมเวิร์กยุคใหม่ที่มุ่งเน้น "ขนาดเล็ก, รวดเร็ว, ประสิทธิภาพสูง และปลอดภัย" โดยเปิดโอกาสให้นักพัฒนาใช้เครื่องมือพัฒนาเว็บที่คุ้นเคย ทำงานร่วมกับภาษา Rust ที่เป็น หลังบ้าน (Back-End) บทความนี้จะพาทุกท่านไปเจาะลึกรายละเอียดของ Tauri กัน ว่ามันมีความน่าสนใจอย่างไรบ้าง ?

Tauri เป็นเฟรมเวิร์กแบบ โอเพ่นซอร์ส (Open-Source) สำหรับสร้างโปรแกรมแบบ Cross-platform ทั้งบนระบบปฏิบัติการ วินโดวส์ (Windows), แมคโอเอส (macOS), ลีนุกซ์ (Linux) และสมาร์ทโฟนทั้ง Android และ iOS โดยใช้เทคโนโลยีฝั่งเว็บ (Web Frontend) ร่วมกับภาษา Rust ในส่วนประมวลผลหลัก
ลักษณะเด่นของ Tauri คือการออกแบบให้เป็น "Polyglot & Frontend Independent" หมายความว่านักพัฒนาสามารถเลือกใช้ระบบ หน้าบ้าน (Front-End) ใดก็ได้ตามความถนัด เช่น React Native, Vue, Svelte, Angular, SolidJS หรือแม้กระทั่ง Vanilla HTML/JS โดยไม่ผูกติดกับเทคโนโลยีใดเทคโนโลยีหนึ่ง ขณะที่ส่วน Backend จะใช้ภาษา Rust ในการบริหารจัดการระบบ และติดต่อกับระบบปฏิบัติการโดยตรง
นอกจากนี้ Tauri ยังดูแล และบริหารจัดการภายใต้ Tauri Foundation ซึ่งสังกัดองค์กรไม่แสวงหากำไร The Commons Conservancy และใช้สัญญาอนุญาตแบบ MIT License และ Apache License 2.0 ที่ให้อิสระในการนำไปใช้งาน และพัฒนาต่อเป็นอย่างมาก
สถาปัตยกรรมของ Tauri ถูกออกแบบตามแนวคิด Defense in Depth โดยแบ่งการทำงานออกเป็น 2 ส่วนหลักที่สื่อสารกันอย่างรัดกุม
Tauri แตกต่างจาก Electron ที่ต้องส่ง เว็บเบราว์เซอร์ (Web Browser) Chromium สำเร็จรูปพ่วงไปกับตัวโปรแกรม แต่ Tauri เลือกใช้วิธีเรียกใช้ WebView ดั้งเดิมที่มีอยู่ในระบบปฏิบัติการ (Native OS WebView) ผ่าน ไลบรารี (Library) เฉพาะ
ทำหน้าที่ดึง WebView ของระบบปฏิบัติการมาใช้งาน เช่น WebView2 บน Windows, WebKit บน macOS/iOS, WebKitGTK บน Linux และ Android WebView บน Android
ไลบรารีสำหรับจัดการหน้าต่างโปรแกรม (Window Management) แบบ Cross-platform
ตัวกลางหลักบริหารจัดการผ่าน Rust (tauri crate) ซึ่งควบคุม Logic ในระดับ Native การเข้าถึงไฟล์, ระบบเครือข่าย, การจัดการเธรด (Multithreading) และสิทธิ์การใช้งานต่าง ๆ รวมทั้งใน Tauri v2 มีการพัฒนาระบบ ปลั๊กอิน (Plug-in) Architecture ที่ดึงโค้ด Native เช่น Swift (iOS) และ Kotlin (Android) มาเชื่อมต่อร่วมด้วย
สื่อสารระหว่าง Frontend (JavaScript) และ Backend (Rust) ผ่านช่องทางสื่อสารที่มีการตรวจสอบความถูกต้องอย่างเข้มงวด
ป้องกันการโจมตีจากสคริปต์ที่ไม่ได้รับอนุญาต โดยทำหน้าที่สกัด และสแกนข้อความ IPC ก่อนส่งไปยัง Rust Backend
นักพัฒนาสามารถเปิด/ปิดระบบ ส่วนต่อประสานโปรแกรมประยุกต์ (API) แต่ละส่วนได้อย่างละเอียด (Fine-grained API Permission) และ Tauri จะคอมไพล์ออกมาเป็นไฟล์ Binary โดยไม่มีการใช้ไฟล์ ASAR เหมือนเฟรมเวิร์กอื่น ช่วยลดความเสี่ยงจากการถูกแฮกหรือทำ Reverse Engineering
Tauri ถูกริเริ่มสร้างขึ้นโดย Daniel Thompson-Yvetot และ Lucas Nogueira โดยเปิดตัวโปรเจกต์โอเพ่นซอร์สครั้งแรกเมื่อวันที่ 19 มิถุนายน ค.ศ. 2020 (พ.ศ. 2563) ด้วยเป้าหมายหลักในการสร้างทางเลือกใหม่ที่เบา และปลอดภัยกว่า Electron
เพื่อให้การพัฒนายั่งยืน Tauri ได้จัดตั้ง Tauri Foundation และเข้าร่วมเป็นส่วนหนึ่งขององค์กร The Commons Conservancy เพื่อควบคุมทิศทางโครงการแบบเปิด และปราศจากการครอบงำโดยบริษัทใดบริษัทหนึ่ง
หลังจากการพัฒนา และทดสอบอย่างเข้มข้น Tauri 1.0 ประกาศเปิดตัวอย่างเป็นทางการ รองรับระบบปฏิบัติการหลักบนทั้ง Windows, macOS และ Linux และได้รับกระแสตอบรับอย่างล้นหลามจากนักพัฒนาทั่วโลก
ทีมพัฒนาขยายขอบเขตการทำงานครั้งใหญ่ด้วยการประกาศรองรับระบบปฏิบัติการบนสมาร์ทโฟน iOS และ Android พร้อมปรับปรุงระบบ IPC และ Plugin Architecture
Tauri v2.0 เวอร์ชันสมบูรณ์เปิดตัวอย่างเป็นทางการ ยกระดับเป็นนิเวศน์ Cross-Platform ที่ครอบคลุมทั้ง Desktop และ Mobile พร้อมระบบความปลอดภัย และการจัดการสิทธิ์รูปแบบใหม่
Tauri กลายเป็นเฟรมเวิร์กชั้นนำที่ได้รับการสนับสนุนจากองค์กรระดับโลกมากมาย เช่น 1Password, Sentry, Sourcegraph, HTTP Toolkit และชุมชนนักพัฒนา โอเพ่นซอร์ส (Open-Source) ทั่วโลก
Tauri คือก้าวสำคัญของการพัฒนาแอปพลิเคชันแบบ Cross-platform ยุคใหม่ ที่ทลายข้อจำกัดเดิม ๆ ด้านขนาดไฟล์ และการกินทรัพยากร ด้วยการผสานจุดแข็งด้านความยืดหยุ่น ทำ UI ง่าย ของ Web Frontend เข้ากับความเร็ว และปลอดภัย ของ Rust Backend และสุดท้ายความเบาของ Native OS WebView
แม้ผู้พัฒนาอาจต้องเจอความท้าทายเรื่องความแตกต่างของ WebView บนแต่ละ OS และ Learning Curve ของภาษา Rust แต่ด้วยประสิทธิภาพ, คุณสมบัติความปลอดภัย และการรองรับทั้ง Desktop และ Mobile ใน Tauri v2 ทำให้ Tauri กลายเป็นหนึ่งในตัวเลือกที่ดีที่สุดสำหรับการสร้างแอปพลิเคชันประสิทธิภาพสูงในปัจจุบัน
คำสำคัญ »
|
|
แอดมินสายเปื่อย ชอบลองอะไรใหม่ไปเรื่อยๆ รักแมว และเสียงเพลงเป็นพิเศษ |