Tags:
Node Thumbnail

Tailscale ผู้ให้บริการควบคุมการเข้าถึงเซิร์ฟเวอร์ผ่าน Wireguard ปรับปรุงฟีเจอร์ Tailscale SSH ให้สามารถใช้งานในเบราว์เซอร์ได้โดยตรง เหมือนกับหน้าคอนโซลของผู้ให้บริการคลาวด์จำนวนมากที่เปิดให้ลูกค้าเข้าควบคุมเครื่องจากในเบราว์เซอร์ แต่ความต่างของ Tailscale คือมันไม่ได้เป็นเพียงการนำหน้าจอเทอร์มินัลมาแสดงบนเว็บเท่านั้นแต่อาศัยการรันซอฟต์แวร์ทั้งหมดในเบราว์เซอร์ผ่าน WebAssembly โดยตรง

ทาง Tailscale พอร์ตชุดซอฟต์แวร์แบบเดียวกับที่ใช้งานในไคลเอนต์ปกติ ได้แก่ ซอฟต์แวร์ของ Tailscale เอง, Wireguard, ชุดเน็ตเวิร์ค, และ SSH จากนั้นเมื่อล็อกอินแล้ว Tailscale จะสร้างกุญแจยืนยันตัวตนชั่วคราว (ephemeral auth key) โหลดเข้าไปในไคลเอนต์ในเบราว์เซอร์

Tags:
Node Thumbnail

Docker Inc. ปล่อย Docker Desktop รุ่น Technical Preview ทดสอบฟีเจอร์รองรับ WASM ในตัว โดยใช้ wasmedge runtime แต่ยังควบคุมด้วยคำสั่ง docker เหมือนคอนเทนเนอร์ปกติ พร้อมกับสมัครสมาชิกเข้า Bytecode Alliance กลุ่มผลักดันให้ใช้งาน WASM ได้ทุกที่

ทาง Docker Inc. ร่วมมือกับ WasmEdge พัฒนาชุดครอบ runtime ทำให้ควบคุมได้เหมือน containerd ตัว docker engine จึงมองเห็นโปรแกรม wasm เหมือนคอนเทนเนอร์อื่นๆ

Tags:
Node Thumbnail

Supabase ผู้พัฒนาแพลตฟอร์มทดแทน Firebase เปิดโครงการ postgres-wasm พอร์ต PostgreSQL ทั้งก้อนเข้าไปรันในเบราว์เซอร์ด้วย WASM แม้ว่าก่อนหน้านี้ Crunchy Data จะเคยทำโครงการแบบเดียวกันมาก่อนแล้ว แต่ก็ทำไว้ใช้งานสำหรับเว็บสอน SQL ของ Crunchy Data เองเท่านั้น แต่ postgres-wasm นี้เป็นโครงการโอเพนซอร์สที่นำไปใช้งานอย่างอื่นได้ด้วย

โครงการนี้ทาง Supabase พัฒนาโครงการร่วมกับ Snaplet โครงการแปลงข้อมูลในฐานข้อมูลเพื่อให้นักพัฒนานำข้อมูลจากโปรดักชั่นไปใช้งานได้ ตัวโครงการ postgres-wasm จึงมี repository สองที่จากทั้ง Supabase และ Snaplet

Tags:
Node Thumbnail

Bytecode Alliance เปิดตัว Wasmtime 1.0 โครงการที่เริ่มมาตั้งแต่ปี 2019 เมื่อครั้ง Bytecode Alliance ยังเป็นเพียงชุมชนโอเพนซอร์สไม่ได้จดทะเบียนองค์กรจริงจัง และตอนนี้ตัว Wasmtime มีการใช้งานบนโปรดักชั่นกว้างขวางพอสมควรแล้ว และเชื่อว่าระบบเสถียรพอที่จะแนะนำให้คนทั่วไปใช้งาน

Wasmtime เป็นรันไทม์แยก จากเดิมที่ WebAssembly ถูกออกแบบมาให้รันในเบราว์เซอร์ การใช้งานจึงอาจจะเป็นการรันในจาวาสคริปต์รันไทม์ทั้งชุดแต่ในความเป็นจริงผู้ใช้จำนวนหนึ่งต้องการรัน WebAssembly อย่างเดียว แยกระบบออกมาทำให้เวลาเริ่มต้นโปรเซสเร็วขึ้นมาก จากเดิมจาวาสคริปต์ใช้เวลาประมาณ 5ms การรัน WebAssembly จะใช้เวลา 5 microsecond เท่านั้น

Tags:
Node Thumbnail

Crunchy Data ผู้ให้บริการฐานข้อมูล PostgreSQL บนคลาวด์ เปิดบทเรียน SQL แบบออนไลน์ฟรี ให้ผู้เรียนสามารถฝึกเขียน SQL ได้อย่างอิสระ โดยอาศัยการคอมไพล์ PostgreSQL ทั้งชุดมารันบน WASM ใช้งานได้เหมือนข้อมูลจริง โดยไม่ต้องเปลืองทรัพยากรฝั่งของ Crunchy Data เอง (นอกจากค่าพัฒนาและค่าแบนวิดท์)

Tags:
Node Thumbnail

Cloudflare อัพเกรดบริการ Workers ให้รองรับมาตรฐาน WASI ที่จะเปิดทางให้นักพัฒนาเขียนโปรแกรมภาษาอะไรก็ได้เพื่อคอมไพล์เป็นแบบ WebAssembly และ WASI แล้วส่งขึ้นไปรันบน Workers

WASI สำหรับโปรแกรมที่คอมไพล์เป็น WebAssembly มองเห็น system call ที่เป็นเหมือนระบบปฎิบัติการบนคอมพิวเตอร์ทั่วๆ ไป สำหรับเราสามารถคอมไพล์โปรแกรมเดิมๆ ไปรันบนแพลตฟอร์มใหม่ๆ ที่รองรับ WASI ได้โดยไม่ต้องแก้ไขเพิ่มเติม

Clouflare สาธิตการใช้โปรแกรมเดิมๆ คอมไพล์ไปรันบน Workers เช่น SWC สำหรับการคอมไพล์ TypeScript เป็น JavaScript หรือ zstd สำหรับบีบอัดไฟล์

Tags:
Node Thumbnail

Mozilla เผยข้อมูลของ RLBox เทคนิคการทำ sandbox แบบใหม่ที่จะเริ่มใช้ใน Firefox 95 โดยเป็นความร่วมมือกับงานวิจัยของมหาวิทยาลัย UC San Diego และ University of Texas

เว็บเบราว์เซอร์ยุคปัจจุบันมีการทำ sandbox ห่อหุ้มเว็บไซต์ไว้ในโพรเซสของตัวเอง ป้องกันไม่ให้เว็บอันตรายสามารถเข้าถึงเว็บอื่นๆ หรือออกมาสร้างอันตรายนอกเบราว์เซอร์ได้

Mozilla บอกว่าเมื่อห่อหุ้มเว็บเพจได้แล้ว เป้าหมายต่อไปคือการแยกคอมโพเนนต์แต่ละส่วนของเบราว์เซอร์ ไม่ให้มายุ่งเกี่ยวกันได้ (เช่น แยกโพรเซสประมวลผลวิดีโอออกมา ไม่ต้องยุ่งกับเบราว์เซอร์หลัก) โดยเฉพาะไลบรารีภายนอกที่อาจมีช่องโหว่ แต่ Mozilla ไม่สามารถควบคุมคุณภาพของโค้ดได้เอง (ปํญหา supply-chain attack ที่เกิดขึ้นบ่อยในช่วงหลัง)

Tags:
Topics: 
Node Thumbnail

Fastly, Intel, Mozilla, และ Microsoft ร่วมก่อตั้ง Bytecode Alliance องค์กรไม่แสวงหากำไรเพื่อการพัฒนาซอฟต์แวร์บนมาตรฐาน WebAssembly และ WebAssembly System Interface (WASI) เพื่อให้ใช้งานได้หลายรูปแบบทั้งบนคลาวด์, อุปกรณ์ IoT, หรือสภาพแวดล้อมอื่นๆ

ความพยายามนำไบนารีมารันใน sandbox ที่มีสิทธิ์จำกัดและมีความปลอดภัยแบบเดียวกับจาวาสคริปต์นั้นมีมายาวนาน เช่นโครงการ NaCl ของกูเกิลที่เริ่มมาตั้งแต่ปี 2011 ส่วน Mozilla นั้นเสนอแนวทาง asm.js มาตั้งแต่ปี 2013 ก่อนที่ทั้งอุตสาหกรรมจะหันมาสนับสนุน WebAssembly กันแทบทั้งหมด

Tags:
Node Thumbnail

Blazor เป็นเฟรมเวิร์คตัวหนึ่งในตระกูล ASP.NET เอาไว้เขียนเว็บแอพแบบหน้าเดียว (single-page) ด้วย HTML ผสมกับ C# แทนที่จะเป็น JavaScript

จุดเด่นของ Blazor คือใช้ภาษา C# ที่นักพัฒนาสาย .NET คุ้นเคย, ใช้โค้ด C# ทั้งฝั่งไคลเอนต์และเซิร์ฟเวอร์, ใช้ไลบรารีของ .NET ได้, มีระบบ UI component ให้พร้อมสรรพ

ก่อนหน้านี้ การทำงานของ Blazor คือต้องรันเซิร์ฟเวอร์ Blazor ที่เป็น .NET ด้วย แต่ล่าสุดในงาน Build 2020 ไมโครซอฟท์เพิ่มวิธีรัน Blazor แบบที่สองคือ Blazor WebAssembly แปลงโค้ดของรันไทม์ .NET เป็น WebAssembly ที่รันในเว็บเบราว์เซอร์รุ่นใหม่ๆ ได้ทั้งตัว

Tags:
Node Thumbnail

แนวคิดการทำ sandbox เพื่อจำกัดขอบเขตความเสียหายกรณีโปรแกรมโดนแฮ็ก กำลังได้รับความนิยมมากขึ้นเรื่อยๆ แต่หลายกรณีก็มีข้อจำกัด เช่น การเรียกใช้ไลบรารีที่มีขนาดเล็กจนไม่สามารถแยกโพรเซสได้ แต่ไลบรารีก็ไม่ได้เขียนเองทำให้ควบคุมคุณภาพโค้ดไม่ได้

Mozilla ร่วมกับทีมวิจัยจากมหาวิทยาลัย 3 แห่งคือ University of California San Diego, University of Texas Austin, Stanford University พัฒนาเทคนิคใหม่ชื่อ RLBox แก้ปัญหานี้ด้วยการแปลงโค้ด C/C++ เป็น WebAssembly ก่อน เพื่อรันใน sandbox ของ WebAssembly แทน

Tags:
Node Thumbnail

W3C องค์กรวางมาตรฐานเว็บประกาศเผยแพร่เอกสารสเปค WebAssembly เปิดทางสู่การรันโค้ดที่ประสิทธิภาพแทบเท่ากับการรันโปรแกรมแบบ native บนเบราว์เซอร์ ทำให้เบราว์เซอร์กลายเป็นแพลตฟอร์มกลางสำหรับการรันแอปพลิเคชั่น เช่น เกม, ระบบถอดรหัส/เข้ารหัส เสียงและวิดีโอ, อัลกอริทึมเข้ารหัส, ไปจนถึงการรันโค้ดภาษาอื่นๆ

เอกสารแยกออกเป็น 3 ฉบับ ได้แก่

Tags:
Node Thumbnail

เป็นที่รู้กันดีว่า Mozilla ผลักดันเทคโนโลยี WebAssembly แบบสุดตัว ปัจจุบันเว็บเบราว์เซอร์ 4 ค่ายใหญ่ล้วนรองรับ WebAssembly กันหมดแล้ว ผลงานใหม่ล่าสุดของ Mozilla จึงหันไปจับตลาดนักพัฒนา ด้วยการเปิดตัว IDE สำหรับ WebAssembly โดยเฉพาะ

IDE ตัวนี้ชื่อว่า WebAssembly Studio มันเป็น IDE แบบออนไลน์ใช้งานผ่านเว็บ โดย Mozilla พัฒนาขึ้นจากโค้ดของซอฟต์แวร์โอเพนซอร์สหลายโครงการ เช่น Monaco Editor ของไมโครซอฟท์ (ตัวเดียวกับที่ใช้ใน VS Code), Binaryen, Clang Format ผสมกันออกมาเป็น IDE ที่สามารถเขียนโค้ดในภาษา C/C++/Rust แล้วแปลงเป็น WebAssembly ได้ทันที (กดเข้าไปลองเล่น)

Tags:
Node Thumbnail

Mozilla ประกาศแผนการพัฒนาให้ภาษา Rust ทำงานร่วมกับ JavaScript ในการใช้เขียนเว็บร่วมกัน

แนวทางของ Mozilla ไม่ได้ต้องการให้ Rust มาแทน JavaScript แต่มองว่าถ้าส่วนไหนจำเป็นต้องใช้ Rust เพื่อประสิทธิภาพที่ดีกว่า (เช่น การ parse ข้อมูลขนาดใหญ่) ก็สามารถใช้ Rust เขียนส่วนนั้น แล้วนำมาใช้ร่วมกับ JavaScript ในส่วนอื่นได้

วิธีการที่ Mozilla ใช้คือคอมไพล์ Rust เป็น WebAssembly ก่อน แล้วค่อยให้ WebAssembly ทำงานร่วมกับ JavaScript อีกทอดหนึ่ง ซึ่งวิธีนี้จะเปิดให้ใช้ภาษาอื่นนอกจาก Rust ในระยะยาว โดย Mozilla ระบุว่ามีแผนจะแปลง C/C++ เป็น WebAssembly ในอนาคตด้วย

Tags:
Node Thumbnail

เราทราบกันดีว่า Firefox 57 เร็วขึ้นกว่าเดิมมาก แต่นั่นเป็นเพียงจุดเริ่มต้นเท่านั้น เพราะ Mozilla มีแผนปรับปรุงเอนจินอีกมาก และใน Firefox 58 ก็มีของใหม่ที่ช่วยให้การประมวลผล JavaScript เร็วขึ้นอีก

ที่ผ่านมา Firefox รองรับ WebAssembly หรือการคอมไฟล์ JavaScript เป็นไบนารีเพื่อให้ได้ประสิทธิภาพดีขึ้นกว่าเดิม ใน Firefox 58 จะปรับปรุงการคอมไพล์ WebAssembly โดยใช้เทคนิค 2 อย่างประกอบกัน

Tags:
Node Thumbnail

WebAssembly ฟอร์แมตไบนารีแบบใหม่สำหรับเว็บเบราว์เซอร์โดยวิศวกรจาก Google, Microsoft, Mozilla, WebKit ที่ทำงานร่วมกันเพื่อรันเว็บแอพให้ได้ความเร็วใกล้เคียงกับแอพแบบเนทีฟ ตอนนี้ถือว่าเป็นฟอร์แมตที่ได้รับการรองรับจากเว็บเบราว์เซอร์เจ้าใหญ่ทั้งหมดสี่เจ้าแล้ว หลังจากที่ล่าสุด Safari และ Microsoft Edge เพิ่งอัพเดตรองรับไป เพิ่มเติมจาก Firefox และ Chrome ที่รองรับไปก่อนหน้านี้ ส่วนเบราว์เซอร์ที่ใช้ฐานจาก Chromium อย่าง Opera และ Vivaldi ก็จะรองรับในอีกไม่นานนัก

Tags:
Node Thumbnail

Chrome มีฟีเจอร์ PNaCl ที่นำโค้ดแบบเนทีฟมารันบนเบราว์เซอร์ เริ่มใช้มาตั้งแต่ Chrome 31 ในปี 2013 ล่าสุดกูเกิลประกาศถอดฟีเจอร์นี้แล้ว

เหตุผลคือกูเกิลจะย้ายไปใช้ฟีเจอร์แบบเดียวกัน แต่เป็นมาตรฐานกว่าคือ WebAssembly ที่ร่วมพัฒนาโดย Google, Microsoft, Mozilla, Apple มันคือการคอมไพล์ภาษาโปรแกรมเป็นไบนารี แล้วนำไปรันบนเอนจินจาวาสคริปต์ของเบราว์เซอร์อีกทีหนึ่ง

Tags:
Node Thumbnail

Google ได้ออกอัพเดต Chrome 57 ทั้งบน Windows, Mac และ Linux โดยฟีเจอร์สำคัญในรอบนี้ ได้แก่

Tags:
Node Thumbnail

Mozilla ได้ออก Firefox 52 ตามรอบการอัพเดตทั้งบนเดสก์ท็อปและ Android โดยรอบนี้มาพร้อมกับฟีเจอร์สำคัญหลายอย่าง โดยบนเดสก์ท็อปมีการเปลี่ยนแปลงที่สำคัญดังนี้

Tags:
Node Thumbnail

วิศวกรจากกูเกิล, ไมโครซอฟท์, Mozilla และ WebKit ร่วมกันเปิดตัว WebAssembly เทคโนโลยีฟอร์แมตไบนารี "แบบใหม่" สำหรับเว็บเบราวเซอร์

นักพัฒนาสามารถคอมไพล์ภาษาโปรแกรม (ปัจจุบันเน้นที่ C/C++ ในอนาคตจะเพิ่มภาษาอื่นเข้าไป เช่น Rust, Go หรือ C#) ให้มาอยู่ในรูปแบบของฟอร์แมตไบนารีสำหรับเว็บ ทำงานบน JavaScript เอนจินบนเบราว์เซอร์ได้เลยโดยไม่ต้อง parse โค้ด Javascript ที่เป็นข้อความอีกต่อไป ผลคือการประมวลผลเร็วขึ้น (ต้นแบบปัจจุบันทำงานได้เร็วกว่าการ parse asm.js โค้ด 23 เท่า) และข้อดีอีกอย่างคือขนาดของโค้ดที่คอมไพล์ให้อยู่ในรูปแบบของไบนารีฟอร์แมตจะมีขนาดเล็กกว่า JavaScript