iroh - ไลบรารีโอเพนซอร์สสำหรับการเชื่อมต่อเครือข่าย P2P ความเร็วสูงพิเศษบนพื้นฐานคีย์สาธารณะ
(github.com/n0-computer)- p2p that just works : ให้ API ที่เมื่อสั่งว่า “เชื่อมต่อกับโทรศัพท์เครื่องนั้น” ก็จะ รักษาการเชื่อมต่อเครือข่ายที่เร็วที่สุดโดยไม่ขึ้นกับตำแหน่งที่อยู่
- ให้ API สำหรับเชื่อมต่อกับโหนดเป้าหมายโดยอิงคีย์สาธารณะ (Public Key, dial keys) แทนที่อยู่เครือข่ายหรือ IP
- ค้นหาเส้นทางที่เหมาะสมที่สุดและรักษาการเชื่อมต่อที่เร็วที่สุดเสมอผ่าน การเชื่อมต่อโดยตรง (Hole-punching) หรือ เซิร์ฟเวอร์รีเลย์สาธารณะ
- ทำงานบน QUIC (ใช้ Quinn) จึงมี การเข้ารหัส, สตรีมพร้อมกัน, ดาตาแกรม, การสื่อสารที่มีความหน่วงต่ำ มาให้โดยพื้นฐาน และไม่เกิด head-of-line blocking
- head-of-line-blocking : ปรากฏการณ์ในการสื่อสารเครือข่ายที่เมื่อข้อมูลบางส่วนด้านหน้าของสายข้อมูลหนึ่งชุด (แพ็กเก็ต) ล่าช้า ข้อมูลทั้งหมดที่อยู่ถัดไปด้านหลังก็ต้องรอไปด้วย ทำให้เกิด ความล่าช้าในการส่งโดยรวม
- รองรับการส่งข้อมูลระหว่างอุปกรณ์ที่รันได้ทุกที่ ไม่ว่าจะเป็น คลาวด์เซิร์ฟเวอร์, แท็บเล็ต, ระบบฝังตัว หรือสภาพแวดล้อมและขนาดใดก็ตาม
- ใช้ API เดียวกันเพื่อรันบน ESP32, Raspberry Pi, Linux ได้ และอุปกรณ์ต่าง ๆ ค้นพบกันเองโดยอัตโนมัติ — ไม่ต้องมี broker หรือ gateway
- สามารถผสานโปรโตคอลส่วนขยายที่สร้างไว้แล้ว เช่น iroh-blobs, iroh-gossip, iroh-docs, iroh-willow ได้ง่าย เพื่อพัฒนาแอปพลิเคชันเครือข่ายแบบกระจายหลากหลายรูปแบบ เช่น การส่ง content blob ขนาดใหญ่, publish-subscribe, ที่เก็บคีย์-ค่าที่มี eventual consistency
- ผสานเข้ากับไลบรารี Rust ได้ง่าย และรองรับภาษาอื่นผ่าน FFI bindings
- เป็น โอเพนซอร์ส (dual license: MIT/Apache 2.0) ทุกคนจึงสามารถแก้ไข แจกจ่าย และเปิดใช้งานรีเลย์ของตนเองได้อย่างอิสระ
ยังไม่มีความคิดเห็น