หลังจากสองปีของการพัฒนา มีการประกาศการเปิดตัวรุ่นแรก โครงการที่สำคัญ Wasmer ซึ่งพัฒนารันไทม์เพื่อรันโมดูล WebAssembly
พื้นที่ใช้เครื่องซักผ้า รวมถึงการสร้างแอปพลิเคชันสากล ที่สามารถดำเนินการได้ บนระบบปฏิบัติการที่แตกต่างกัน เช่นเดียวกับองค์กรของการดำเนินการแยกรหัสที่ไม่น่าเชื่อถือ สนับสนุนการรวมการสร้างแอ็พพลิเคชันเซิร์ฟเวอร์ตัวอย่างเช่นการเปิดตัวเซิร์ฟเวอร์ Nginx ที่คอมไพล์บน WebAssembly ถูกสาธิต
เกี่ยวกับ Wasmer
พกพา ทำได้โดยการรวบรวมรหัสแอปพลิเคชันในมิดเดิลแวร์ WebAssembly ระดับต่ำที่สามารถทำงานบนระบบปฏิบัติการใดก็ได้หรือรวมเข้ากับโปรแกรมในภาษาโปรแกรมอื่น ๆ
โปรแกรมต่างๆ เป็นคอนเทนเนอร์น้ำหนักเบาที่เรียกใช้รหัสเทียม WebAssembly คอนเทนเนอร์เหล่านี้ไม่ได้เชื่อมโยงกับระบบปฏิบัติการและสามารถมีแอพพลิเคชั่นที่เขียนด้วยภาษาโปรแกรม
ชุดเครื่องมือ Emscripten สามารถใช้เพื่อคอมไพล์ลงใน WebAssemblyนอกเหนือจากการแปล WebAssembly เป็นรหัสเครื่องของแพลตฟอร์มปัจจุบันแล้วยังมีการเชื่อมต่อเฟรมเวิร์กหลายอย่างเช่น LLVM และตัวสร้างโค้ด Cranelift
ในทางกลับกันการควบคุมการเข้าถึงและการโต้ตอบกับระบบมีให้ผ่าน WASI (WebAssembly System Interface) API ซึ่งจัดเตรียมอินเตอร์เฟสการเขียนโปรแกรมสำหรับการทำงานกับไฟล์ซ็อกเก็ตและฟังก์ชันอื่น ๆ ที่ระบบปฏิบัติการมีให้
นอกเหนือจากนั้น แอปพลิเคชันถูกแยกออกจากระบบโฮสต์ในสภาพแวดล้อมแซนด์บ็อกซ์และ พวกเขาสามารถเข้าถึงเฉพาะฟังก์ชันการทำงานที่ประกาศไว้เท่านั้น (กลไกการรักษาความปลอดภัยตามความสามารถในการจัดการสำหรับการดำเนินการกับแต่ละทรัพยากร (ไฟล์ไดเร็กทอรีซ็อกเก็ตการเรียกระบบ ฯลฯ ) แอปพลิเคชันจะต้องได้รับอำนาจที่เกี่ยวข้อง)
โปรแกรมถูกแจกจ่ายในรูปแบบของโมดูล WebAssembly ปกติซึ่งสามารถจัดการได้ผ่านตัวจัดการแพ็คเกจ WAPM
Wasmer ด้วย มีให้บริการในรูปแบบไลบรารีที่สามารถใช้กับภาษาต่างๆ การเขียนโปรแกรม รองรับการฝังโค้ด WebAssembly ในโปรแกรม Rust, C / C ++, C #, D, Python, JavaScript, Go, PHP, Ruby, Elixir และ Java
เป็น คุณสมบัติ Wasmer เวอร์ชัน 1.0 สิ่งต่อไปนี้โดดเด่น:
- แอพพลิเคชั่นที่รันประสิทธิภาพสูงใกล้เคียงกับการทำงานของแอสเซมบลีเนทีฟและความเร็วในการคอมไพล์สูง
- สถาปัตยกรรมที่ขยายได้พร้อมความสามารถในการเชื่อมต่อแบ็กเอนด์บิลด์ที่แตกต่างกัน (Singlepass, Cranelift, LLVM) และเครื่องยนต์ (โดยใช้ JIT หรือสร้างรหัสเครื่องจักร)
Native Object Engine ซึ่งอนุญาตให้สร้างโค้ดเครื่องสำหรับระบบที่กำหนดสำหรับโมดูล WebAssembly ("wasmer-native compilation" เพื่อสร้างไฟล์อ็อบเจ็กต์. so, .dylib และ. dll ที่คอมไพล์ไว้ล่วงหน้า) - โค้ดที่คอมไพล์ไว้ล่วงหน้าต้องใช้เวลาดำเนินการน้อยที่สุดในการรัน แต่ความสามารถในการแยกแซนด์บ็อกซ์ทั้งหมดจะยังคงอยู่
- โหมด Headless เพื่อส่งมอบโปรแกรมที่คอมไพล์ล่วงหน้าด้วย Wasmer ในตัว
การสนับสนุนการคอมไพล์ข้ามตัวอย่างเช่นเพื่อสร้างรหัสเครื่องสำหรับสถาปัตยกรรม Aarch64 บนระบบ x86_64 - API ง่ายๆสำหรับการสร้างปลั๊กอินและปลั๊กอินโดยไม่จำเป็นต้องเรียนรู้แนวคิด WebAssembly ขั้นสูง
- รองรับ WASM-C-API
- เครื่องมือสำหรับการดีบักและการจัดการข้อผิดพลาด
ในที่สุด หากคุณสนใจเรียนรู้เพิ่มเติมเกี่ยวกับ Wasmer คุณควรรู้ว่า eรหัสโครงการเขียนด้วย Rust ก็มี la ใบอนุญาต MIT และคุณสามารถตรวจสอบรายละเอียดได้จากเว็บไซต์อย่างเป็นทางการที่ ลิงค์ต่อไปนี้
ติดตั้งรันไทม์ Wasmer
ในทางกลับกันสำหรับผู้ที่สนใจในการเรียกใช้คอนเทนเนอร์ WebAssembly คุณจะต้องติดตั้งรันไทม์ Wasmer บนระบบของคุณเท่านั้นซึ่งมาโดยไม่ต้องพึ่งพาภายนอก
สิ่งสำคัญคือต้องพูดถึงเรื่องนั้น Wasmer สามารถทำงานบนแพลตฟอร์มใดก็ได้ macOS, Linux และ Windows ข้อกำหนดเดียวคือต้องติดตั้งรันไทม์บนระบบของคุณ
ในการดำเนินการนี้ให้รันคำสั่งต่อไปนี้ในเทอร์มินัล:
curl https://get.wasmer.io -sSfL | ช
และหลังจากนั้นพวกเขาจะต้องเรียกใช้ไฟล์ที่ต้องการ:
การทดสอบ wasmer.wasm
หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับการทำงานของ Wasmer หรือต้องการทราบซอร์สโค้ดคุณสามารถปรึกษาได้ทั้งหมด ในลิงค์ต่อไปนี้.