- รันไทม์ JavaScript แบบมินิมอลที่รองรับทั้งมือถือและเดสก์ท็อป และสามารถทำงานได้บนฮาร์ดแวร์ที่หลากหลาย
- มุ่งเน้นที่ ความเป็นโมดูล ความอเนกประสงค์ และความเบา ด้วยสถาปัตยกรรมแบบ asynchronous event-driven
- เหมาะอย่างยิ่งสำหรับการพัฒนาแอปพลิเคชัน P2P และแอปข้ามแพลตฟอร์ม
ฟีเจอร์หลัก
-
โครงสร้างแบบโมดูลาร์เต็มรูปแบบ
- ไม่มี standard library → ใช้งานเฉพาะฟังก์ชันที่ต้องการผ่านแนวทางแบบ โมดูล
- ตัวอย่าง:
bare-fs, bare-http1, bare-crypto, bare-zlib, bare-stream เป็นต้น
- ติดตั้งและใช้งานเฉพาะความสามารถที่จำเป็น จึงสามารถสร้าง สภาพแวดล้อมรันไทม์ที่เบา ได้
-
รองรับ ESM & CommonJS
- ใช้ได้ทั้ง
require() และ import
- ทำงานร่วมกันได้อย่างอิสระ แม้อยู่ในสภาพแวดล้อมที่มีการผสมกันของทั้งสองระบบโมดูล
-
รองรับการใช้งานบนมือถืออย่างเหมาะสม
- สามารถฝัง JavaScript runtime ลงในมือถือได้ด้วย Bare Kit
- ผสานเข้ากับ Android และ iOS ได้ง่ายผ่าน
react-native-bare-kit
- รองรับการสื่อสารแบบ IPC และสามารถรัน Bare worklet ในแอป React Native ได้
-
รองรับ Native addon
- เขียน native addon ได้บนพื้นฐานของ
libjs และ libuv
- รองรับ JavaScript engine หลากหลายชนิด เช่น V8, JavaScriptCore, QuickJS
- ใช้งานสัญลักษณ์ของ N-API ได้เป็นส่วนใหญ่
ปรัชญาของ Bare: ความเรียบง่ายคือพลัง
- Bare มี โครงสร้างรันไทม์ขนาดเล็กและเป็นโมดูลาร์ จึงทำงานได้ทั้งบนเดสก์ท็อปและมือถือโดยไม่สูญเสียประสิทธิภาพ
- แม้จะมีสถาปัตยกรรมแบบ asynchronous event-driven เหมือน Node.js แต่ถูกออกแบบโดยให้ การฝังระบบและความเข้ากันได้ระหว่างอุปกรณ์ เป็นหัวใจหลัก
สิ่งที่สามารถสร้างได้ด้วย Bare
-
แอปพลิเคชัน P2P
- สร้าง สตรีมข้อมูลแบบเรียลไทม์ การแชร์ไฟล์ และแอปสื่อสาร ได้อย่างรวดเร็วบนพื้นฐานของสแตก Holepunch
- สามารถพัฒนาแอปสื่อสารและแชร์ข้อมูลแบบไร้เซิร์ฟเวอร์อย่าง Keet และ Pear ได้
- รองรับการสื่อสารแบบเรียลไทม์ประสิทธิภาพสูงได้แม้ไม่ใช้ WebRTC
- ด้วยโครงสร้างที่เบาและเป็นโมดูลาร์ จึงได้ทั้ง ความสามารถในการขยายตัวและประสิทธิภาพ
-
เครือข่ายแบบกระจายศูนย์
- ทำให้เกิดการกระจายตัวในระดับบล็อกเชนได้ด้วยโครงสร้างแบบไร้เซิร์ฟเวอร์
- เหมาะกับแอปแบบกระจายศูนย์หลากหลายประเภท เช่น DeFi การแชร์ข้อมูล และเครือข่ายส่วนตัว
-
การแชร์ข้อมูลประสิทธิภาพสูง
- เหมาะกับ media library เกมเรียลไทม์ และวิดีโอสตรีมมิง
- รองรับการซิงก์และสตรีมมิงที่รวดเร็วและเสถียร
-
แอปข้ามแพลตฟอร์มแบบพึ่งพาตนเอง
- โมดูลที่เขียนครั้งเดียวสามารถ นำกลับมาใช้ซ้ำได้ทั้งบนมือถือและเดสก์ท็อป
- ตัวอย่างเช่น การแจ้งเตือนแบบพุช การรีเอนโค้ดวิดีโอ งานเข้ารหัส ซึ่งทำงานได้ลื่นไหลแม้ในสภาพแวดล้อมสเปกต่ำ
ประสิทธิภาพและความสามารถในการขยาย
- รองรับ JS engine หลากหลาย เช่น V8, JavaScriptCore, QuickJS
- รักษาความเข้ากันได้กับรันไทม์เดิมผ่าน การเชื่อมต่อ LibJS
- ใช้ fastcall เพื่อให้ได้ประสิทธิภาพในระดับ Native
- ผู้นำด้านเทคนิค Kasper Isager: "Bare ถูกออกแบบมาให้รันได้ทุกที่ — ตั้งแต่คอมพิวเตอร์ โทรศัพท์ ไปจนถึงระบบฝังตัว"
Pear + Bare = สแตกการพัฒนา P2P แบบครบวงจร
- Pear คือแพลตฟอร์มที่รวม P2P runtime เครื่องมือพัฒนา และเครื่องมือ deployment ไว้ด้วยกัน
- แอปที่สร้างบน Bare จะทำงานบน Pear Runtime ของ Holepunch และมอบ สภาพแวดล้อม P2P แบบสมบูรณ์ที่ทำงานได้โดยไม่ต้องมีเซิร์ฟเวอร์
- ไม่มีค่าใช้จ่ายด้านเซิร์ฟเวอร์ และ รับประกันความเป็นส่วนตัวของข้อมูลอย่างเต็มที่
- Pear อัปเดตอัตโนมัติ และรวม Bare runtime มาให้ด้วย
- การผสานกันนี้มอบ โมเดลคอนเทนเนอร์น้ำหนักเบา แบบใหม่อย่างสมบูรณ์
สรุป
- Bare คือ รันไทม์ที่ปฏิวัติวงการ ซึ่งทำให้ JavaScript มีความอเนกประสงค์และประสิทธิภาพอย่างแท้จริง
- ภายในทีม Holepunch เองก็ใช้งานในลักษณะ เขียนโค้ดครั้งเดียวแล้วปล่อยแอปทั้งบนมือถือและเดสก์ท็อปพร้อมกัน
- นี่คือการทำให้ "Write Once, Run Anywhere" เกิดขึ้นจริง
- ตอนนี้สามารถสร้างแอป P2P แบบสมบูรณ์ที่ไร้เซิร์ฟเวอร์ ด้วยโค้ดเบสเดียว และรันได้บนทุกอุปกรณ์
ยังไม่มีความคิดเห็น