Simon Willison's Weblog 39 วันที่แล้ว general AI Generated

Any Nix package, live in your browser

เกี่ยวกับ GitHub
Simon Willison's Weblog 11 Sep 2026
59
0
100
13 13m



เจาะประเด็น
Dev Tools


รัน Nix แพ็กเกจย้อนหลัง 13 ปีได้ในเบราว์เซอร์ ไม่ต้องมีเซิร์ฟเวอร์



trynix.dev เอาลินุกซ์ทั้งเครื่องยัดใส่แท็บเบราว์เซอร์ แล้วบูตด้วยแพ็กเกจ Nix อะไรก็ได้จากอดีต




ทีมข่าว เอไอไทย.com
⏱ อ่าน 4 นาที



ถ้าตอนนี้คุณยังต้องลง Docker ทั้งชุดแค่จะลองรันโค้ดเก่าๆ สักเวอร์ชัน นี่คือสัญญาณว่าวิธีที่เราทำกันอยู่มันล้าสมัยไปแล้ว




ลองนึกภาพว่าคุณอยากลองรัน Python 3.6.2 เวอร์ชันปี 2017 ขึ้นมาดูสักหน่อย ปกติแล้วเส้นทางที่คนส่วนใหญ่ต้องเดินคือลง virtual machine, ตั้ง environment, หรือไม่ก็งัด Docker มาใช้ ซึ่งก็กินทั้งเวลา ทั้งพื้นที่ดิสก์ แต่ Farid Zakaria เพิ่งโชว์ให้ดูว่ามันมีทางที่ง่ายกว่านั้นเยอะ



เขาสร้างเว็บชื่อ trynix.dev ขึ้นมา แล้วเรียกมันว่า "magnum opus of Nix work" ซึ่งถ้าดูจากสิ่งที่มันทำได้ ก็ไม่ใช่คำโม้เกินจริงเท่าไหร่ เพราะเว็บนี้รัน x86_64 Linux virtual machine เต็มรูปแบบผ่าน qemu-wasm ทำงานอยู่ในเบราว์เซอร์แบบ 100% ผ่าน WebAssembly



มันทำงานยังไง


จุดที่ทำให้ trynix.dev น่าสนใจไม่ใช่แค่การรัน Linux ในเบราว์เซอร์ เพราะเรื่องนั้นมีคนทำมาก่อนแล้ว แต่คือการที่มันดึงแพ็กเกจ Nix จากอดีตได้ย้อนหลังถึง 13 ปี และทุกแพ็กเกจสามารถเข้าถึงผ่าน URL ได้ตรงๆ



ยกตัวอย่างที่ต้นฉบับยกมา — ถ้าคุณเปิดลิงก์ที่มีพารามิเตอร์ pkg=python3%403.6.2 แล้วกดปุ่ม Load คุณจะได้ interactive shell ของ virtual machine ที่รัน Python 3.6.2 จากปี 2017 ขึ้นมาตรงหน้า โดยไม่ต้องติดตั้งอะไรลงเครื่องเลยแม้แต่ไบต์เดียว



“
GitHub action that comments a link on a pull request which lets you boot the PR's build in the browser using https://trynix.dev. No servers, just browsers.


ต่อยอดไปไหนได้อีก


Farid ไม่ได้หยุดแค่ทำเว็บdemoให้คนกดเล่น เขากำลังสร้างของต่างๆ ต่อยอดจากพื้นฐานนี้อยู่เรื่อยๆ ตัวอย่างล่าสุดที่ต้นฉบับยกมาคือ trynix-preview ซึ่งเป็น GitHub action ที่จะคอมเมนต์ลิงก์ลงใน pull request โดยอัตโนมัติ



พอมีลิงก์นั้นแล้ว reviewer ก็แค่คลิก ก็จะบูตบิลด์ของ PR นั้นขึ้นมาในเบราว์เซอร์ได้ทันที ฟังดูธรรมดาแต่มันแก้ปัญหาที่คนรีวิวโค้ดเจอกันบ่อยมาก คือกว่าจะ checkout branch มาลองรันเองได้ก็เสียเวลาไปครึ่งวันแล้ว



สิ่งที่ต้นฉบับเน้นย้ำคือประโยคสั้นๆ ที่บอกว่า "No servers, just browsers" ซึ่งเป็นจุดที่ทำให้แนวทางนี้ต่างจาก CI/CD ทั่วไปที่ต้องมี runner หรือ server คอยรันอยู่เบื้องหลัง



ทำไมเรื่องนี้ถึงสำคัญ


ถ้ามองในภาพใหญ่ นี่คือการท้าทายสมมติฐานที่วงการ dev ยึดถือมานานว่า การจะรันโค้ดเก่าหรือทดสอบ environment ต้องมี infrastructure รองรับเสมอ ไม่ว่าจะเป็น container, VM หรือ cloud instance



การที่ WebAssembly พัฒนาไปถึงจุดที่รัน qemu เต็มรูปแบบในเบราว์เซอร์ได้ มันเปิดทางให้เราคิดใหม่ได้หมด ตั้งแต่การแชร์ environment ให้เพื่อนร่วมทีมดู ไปจนถึงการเก็บ reproducible build ไว้เป็นลิงก์ที่กดเปิดได้ทุกเมื่อ




เข้าถึงผ่าน URL ตรงๆ

ทุกแพ็กเกจ Nix มี URL ของตัวเอง ระบุเวอร์ชันในพารามิเตอร์แล้วกด Load ได้เลย



ย้อนหลังได้ 13 ปี

ดึงแพ็กเกจจากคลัง Nix ย้อนไปถึงปี 2013 ได้ ไม่จำกัดแค่เวอร์ชันล่าสุด



ไม่ต้องมีเซิร์ฟเวอร์

ทั้งหมดรันในเบราว์เซอร์ผ่าน WebAssembly ไม่ต้องพึ่ง backend หรือ cloud



ใช้รีวิว PR ได้

trynix-preview เป็น GitHub action ที่คอมเมนต์ลิงก์ให้บูตบิลด์ของ PR ในเบราว์เซอร์


💡

สิ่งที่ trynix.dev โชว์ให้เห็นไม่ใช่แค่ความเจ๋งทางเทคนิค แต่คือคำถามตรงๆ ว่าทำไมเรายังต้องแบก VM กับ container หนักๆ ไว้บนเครื่อง ทั้งที่เบราว์เซอร์ก็รัน environment เก่าๆ ให้ได้แล้ว ถ้าแนวทางนี้ไปได้ไกลพอ มันอาจเปลี่ยนวิธีที่ทีม dev แชร์และทดสอบสภาพแวดล้อมกันไปตลอดกาล



ที่มา: Simon Willison's Weblog — อ่านต้นฉบับ


#Nix #WebAssembly #DeveloperTools

🔗 อ่านต่อ · สินค้าและคำถามที่เกี่ยวข้อง

สินค้ามาแรงตอนนี้

คนขายของถามบ่อย

ความคิดเห็น 5

กำลังโหลดความคิดเห็น...