• รันไทม์ 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 แบบสมบูรณ์ที่ไร้เซิร์ฟเวอร์ ด้วยโค้ดเบสเดียว และรันได้บนทุกอุปกรณ์

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น