“Cap’n Web: RPC ยุคใหม่สำหรับเบราว์เซอร์ — เขียนโค้ดเหมือนเรียกฟังก์ชันปกติ แต่ทำงานข้ามเครือข่ายได้ทันที”
Cloudflare เปิดตัว Cap’n Web ระบบ RPC (Remote Procedure Call) ใหม่ที่เขียนด้วย TypeScript ล้วน ๆ โดยออกแบบมาเพื่อใช้งานในเบราว์เซอร์, Cloudflare Workers, Node.js และทุก runtime ที่รองรับ JavaScript สมัยใหม่ จุดเด่นคือการใช้งานง่ายมาก — ไม่ต้องมี schema, ไม่ต้องมี boilerplate และใช้ JSON เป็นพื้นฐานในการสื่อสาร
Cap’n Web เป็นญาติทางจิตวิญญาณของ Cap’n Proto ที่ Kenton Varda เคยสร้างไว้เมื่อสิบปีก่อน แต่ถูกออกแบบใหม่ให้เหมาะกับโลกเว็บ โดยเน้นความสามารถแบบ object-capability เช่น การส่งฟังก์ชันหรืออ็อบเจกต์ข้ามเครือข่ายแบบ reference, การเรียกแบบสองทาง (bidirectional), และการใช้ promise pipelining เพื่อลดจำนวนรอบการสื่อสาร
ระบบนี้ยังรองรับการใช้งานแบบ batch ผ่าน HTTP และ WebSocket ได้ทันที โดยสามารถส่งคำสั่งหลายชุดในรอบเดียว และใช้ promise ที่ยังไม่ resolve เป็น input ของคำสั่งถัดไปได้ทันที ซึ่งช่วยลด latency อย่างมาก
Cap’n Web ยังมีระบบความปลอดภัยแบบ capability-based ที่ช่วยให้การยืนยันตัวตนและการควบคุมสิทธิ์ทำได้ในระดับ object เช่น การเรียก authenticate() แล้วได้ session object ที่มีสิทธิ์เฉพาะตัว ไม่สามารถปลอมแปลงได้
ที่น่าทึ่งคือ Cap’n Web รองรับการ map array แบบไม่ต้องเพิ่มรอบการสื่อสาร โดยใช้เทคนิค record-replay เพื่อแปลง callback เป็นชุดคำสั่งที่สามารถรันฝั่งเซิร์ฟเวอร์ได้โดยไม่ต้อง round-trip กลับไปยัง client
ทั้งหมดนี้ทำให้ Cap’n Web เป็นระบบ RPC ที่ “คิดแบบ JavaScript” อย่างแท้จริง และอาจเป็นทางเลือกใหม่แทน GraphQL สำหรับแอปที่ต้องการความโต้ตอบแบบ real-time และโครงสร้าง API ที่ยืดหยุ่น
ข้อมูลสำคัญจากข่าว
Cap’n Web เป็น RPC system แบบใหม่ที่เขียนด้วย TypeScript ล้วน
ใช้ JSON เป็นพื้นฐานในการสื่อสาร พร้อม pre/post-processing สำหรับ type พิเศษ
รองรับ WebSocket, HTTP, postMessage และสามารถขยายไปยัง transport อื่นได้
ขนาดไฟล์หลังบีบอัดต่ำกว่า 10kB และไม่มี dependency
ความสามารถหลักของ Cap’n Web
รองรับ bidirectional calling — server เรียก client ได้ และกลับกัน
ส่งฟังก์ชันและอ็อบเจกต์แบบ reference ข้ามเครือข่ายได้
ใช้ promise pipelining เพื่อลดจำนวน network round trip
รองรับ capability-based security เช่น session object ที่ไม่สามารถปลอมได้
รองรับ HTTP batch mode สำหรับการเรียกหลายคำสั่งในรอบเดียว
รองรับ array.map() แบบไม่ต้อง round-trip โดยใช้ DSL ที่แปลงจาก callback
การใช้งานกับ TypeScript
สามารถประกาศ interface เดียวแล้วใช้ทั้ง client และ server ได้
รองรับ auto-complete และ type checking แบบ end-to-end
สามารถใช้ร่วมกับระบบ runtime type-checking เช่น Zod ได้
ข้อมูลเสริมจากภายนอก
Cap’n Proto เป็นระบบ RPC ที่ใช้ในระบบ distributed ขนาดใหญ่ เช่น Sandstorm
GraphQL แก้ปัญหา waterfall ของ REST แต่มีข้อจำกัดด้าน composability
Cap’n Web แก้ปัญหาเดียวกันโดยไม่ต้องใช้ schema หรือ tooling ใหม่
Cloudflare ใช้ Cap’n Web ใน Wrangler และเริ่มทดลองใน frontend apps แล้ว
https://blog.cloudflare.com/capnweb-javascript-rpc-library/
Cloudflare เปิดตัว Cap’n Web ระบบ RPC (Remote Procedure Call) ใหม่ที่เขียนด้วย TypeScript ล้วน ๆ โดยออกแบบมาเพื่อใช้งานในเบราว์เซอร์, Cloudflare Workers, Node.js และทุก runtime ที่รองรับ JavaScript สมัยใหม่ จุดเด่นคือการใช้งานง่ายมาก — ไม่ต้องมี schema, ไม่ต้องมี boilerplate และใช้ JSON เป็นพื้นฐานในการสื่อสาร
Cap’n Web เป็นญาติทางจิตวิญญาณของ Cap’n Proto ที่ Kenton Varda เคยสร้างไว้เมื่อสิบปีก่อน แต่ถูกออกแบบใหม่ให้เหมาะกับโลกเว็บ โดยเน้นความสามารถแบบ object-capability เช่น การส่งฟังก์ชันหรืออ็อบเจกต์ข้ามเครือข่ายแบบ reference, การเรียกแบบสองทาง (bidirectional), และการใช้ promise pipelining เพื่อลดจำนวนรอบการสื่อสาร
ระบบนี้ยังรองรับการใช้งานแบบ batch ผ่าน HTTP และ WebSocket ได้ทันที โดยสามารถส่งคำสั่งหลายชุดในรอบเดียว และใช้ promise ที่ยังไม่ resolve เป็น input ของคำสั่งถัดไปได้ทันที ซึ่งช่วยลด latency อย่างมาก
Cap’n Web ยังมีระบบความปลอดภัยแบบ capability-based ที่ช่วยให้การยืนยันตัวตนและการควบคุมสิทธิ์ทำได้ในระดับ object เช่น การเรียก authenticate() แล้วได้ session object ที่มีสิทธิ์เฉพาะตัว ไม่สามารถปลอมแปลงได้
ที่น่าทึ่งคือ Cap’n Web รองรับการ map array แบบไม่ต้องเพิ่มรอบการสื่อสาร โดยใช้เทคนิค record-replay เพื่อแปลง callback เป็นชุดคำสั่งที่สามารถรันฝั่งเซิร์ฟเวอร์ได้โดยไม่ต้อง round-trip กลับไปยัง client
ทั้งหมดนี้ทำให้ Cap’n Web เป็นระบบ RPC ที่ “คิดแบบ JavaScript” อย่างแท้จริง และอาจเป็นทางเลือกใหม่แทน GraphQL สำหรับแอปที่ต้องการความโต้ตอบแบบ real-time และโครงสร้าง API ที่ยืดหยุ่น
ข้อมูลสำคัญจากข่าว
Cap’n Web เป็น RPC system แบบใหม่ที่เขียนด้วย TypeScript ล้วน
ใช้ JSON เป็นพื้นฐานในการสื่อสาร พร้อม pre/post-processing สำหรับ type พิเศษ
รองรับ WebSocket, HTTP, postMessage และสามารถขยายไปยัง transport อื่นได้
ขนาดไฟล์หลังบีบอัดต่ำกว่า 10kB และไม่มี dependency
ความสามารถหลักของ Cap’n Web
รองรับ bidirectional calling — server เรียก client ได้ และกลับกัน
ส่งฟังก์ชันและอ็อบเจกต์แบบ reference ข้ามเครือข่ายได้
ใช้ promise pipelining เพื่อลดจำนวน network round trip
รองรับ capability-based security เช่น session object ที่ไม่สามารถปลอมได้
รองรับ HTTP batch mode สำหรับการเรียกหลายคำสั่งในรอบเดียว
รองรับ array.map() แบบไม่ต้อง round-trip โดยใช้ DSL ที่แปลงจาก callback
การใช้งานกับ TypeScript
สามารถประกาศ interface เดียวแล้วใช้ทั้ง client และ server ได้
รองรับ auto-complete และ type checking แบบ end-to-end
สามารถใช้ร่วมกับระบบ runtime type-checking เช่น Zod ได้
ข้อมูลเสริมจากภายนอก
Cap’n Proto เป็นระบบ RPC ที่ใช้ในระบบ distributed ขนาดใหญ่ เช่น Sandstorm
GraphQL แก้ปัญหา waterfall ของ REST แต่มีข้อจำกัดด้าน composability
Cap’n Web แก้ปัญหาเดียวกันโดยไม่ต้องใช้ schema หรือ tooling ใหม่
Cloudflare ใช้ Cap’n Web ใน Wrangler และเริ่มทดลองใน frontend apps แล้ว
https://blog.cloudflare.com/capnweb-javascript-rpc-library/
🔗 “Cap’n Web: RPC ยุคใหม่สำหรับเบราว์เซอร์ — เขียนโค้ดเหมือนเรียกฟังก์ชันปกติ แต่ทำงานข้ามเครือข่ายได้ทันที”
Cloudflare เปิดตัว Cap’n Web ระบบ RPC (Remote Procedure Call) ใหม่ที่เขียนด้วย TypeScript ล้วน ๆ โดยออกแบบมาเพื่อใช้งานในเบราว์เซอร์, Cloudflare Workers, Node.js และทุก runtime ที่รองรับ JavaScript สมัยใหม่ จุดเด่นคือการใช้งานง่ายมาก — ไม่ต้องมี schema, ไม่ต้องมี boilerplate และใช้ JSON เป็นพื้นฐานในการสื่อสาร
Cap’n Web เป็นญาติทางจิตวิญญาณของ Cap’n Proto ที่ Kenton Varda เคยสร้างไว้เมื่อสิบปีก่อน แต่ถูกออกแบบใหม่ให้เหมาะกับโลกเว็บ โดยเน้นความสามารถแบบ object-capability เช่น การส่งฟังก์ชันหรืออ็อบเจกต์ข้ามเครือข่ายแบบ reference, การเรียกแบบสองทาง (bidirectional), และการใช้ promise pipelining เพื่อลดจำนวนรอบการสื่อสาร
ระบบนี้ยังรองรับการใช้งานแบบ batch ผ่าน HTTP และ WebSocket ได้ทันที โดยสามารถส่งคำสั่งหลายชุดในรอบเดียว และใช้ promise ที่ยังไม่ resolve เป็น input ของคำสั่งถัดไปได้ทันที ซึ่งช่วยลด latency อย่างมาก
Cap’n Web ยังมีระบบความปลอดภัยแบบ capability-based ที่ช่วยให้การยืนยันตัวตนและการควบคุมสิทธิ์ทำได้ในระดับ object เช่น การเรียก authenticate() แล้วได้ session object ที่มีสิทธิ์เฉพาะตัว ไม่สามารถปลอมแปลงได้
ที่น่าทึ่งคือ Cap’n Web รองรับการ map array แบบไม่ต้องเพิ่มรอบการสื่อสาร โดยใช้เทคนิค record-replay เพื่อแปลง callback เป็นชุดคำสั่งที่สามารถรันฝั่งเซิร์ฟเวอร์ได้โดยไม่ต้อง round-trip กลับไปยัง client
ทั้งหมดนี้ทำให้ Cap’n Web เป็นระบบ RPC ที่ “คิดแบบ JavaScript” อย่างแท้จริง และอาจเป็นทางเลือกใหม่แทน GraphQL สำหรับแอปที่ต้องการความโต้ตอบแบบ real-time และโครงสร้าง API ที่ยืดหยุ่น
✅ ข้อมูลสำคัญจากข่าว
➡️ Cap’n Web เป็น RPC system แบบใหม่ที่เขียนด้วย TypeScript ล้วน
➡️ ใช้ JSON เป็นพื้นฐานในการสื่อสาร พร้อม pre/post-processing สำหรับ type พิเศษ
➡️ รองรับ WebSocket, HTTP, postMessage และสามารถขยายไปยัง transport อื่นได้
➡️ ขนาดไฟล์หลังบีบอัดต่ำกว่า 10kB และไม่มี dependency
✅ ความสามารถหลักของ Cap’n Web
➡️ รองรับ bidirectional calling — server เรียก client ได้ และกลับกัน
➡️ ส่งฟังก์ชันและอ็อบเจกต์แบบ reference ข้ามเครือข่ายได้
➡️ ใช้ promise pipelining เพื่อลดจำนวน network round trip
➡️ รองรับ capability-based security เช่น session object ที่ไม่สามารถปลอมได้
➡️ รองรับ HTTP batch mode สำหรับการเรียกหลายคำสั่งในรอบเดียว
➡️ รองรับ array.map() แบบไม่ต้อง round-trip โดยใช้ DSL ที่แปลงจาก callback
✅ การใช้งานกับ TypeScript
➡️ สามารถประกาศ interface เดียวแล้วใช้ทั้ง client และ server ได้
➡️ รองรับ auto-complete และ type checking แบบ end-to-end
➡️ สามารถใช้ร่วมกับระบบ runtime type-checking เช่น Zod ได้
✅ ข้อมูลเสริมจากภายนอก
➡️ Cap’n Proto เป็นระบบ RPC ที่ใช้ในระบบ distributed ขนาดใหญ่ เช่น Sandstorm
➡️ GraphQL แก้ปัญหา waterfall ของ REST แต่มีข้อจำกัดด้าน composability
➡️ Cap’n Web แก้ปัญหาเดียวกันโดยไม่ต้องใช้ schema หรือ tooling ใหม่
➡️ Cloudflare ใช้ Cap’n Web ใน Wrangler และเริ่มทดลองใน frontend apps แล้ว
https://blog.cloudflare.com/capnweb-javascript-rpc-library/
0 ความคิดเห็น
0 การแบ่งปัน
29 มุมมอง
0 รีวิว