Wasmer ชุดเครื่องมือสำหรับแอปพลิเคชัน WebAssembly

หลังจากสองปีของการพัฒนา มีการประกาศการเปิดตัวรุ่นแรก โครงการที่สำคัญ 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 หรือต้องการทราบซอร์สโค้ดคุณสามารถปรึกษาได้ทั้งหมด ในลิงค์ต่อไปนี้.


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. รับผิดชอบข้อมูล: AB Internet Networks 2008 SL
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา