• Fastly开源原生WebAssembly编译器和Runtime专案Lucet,Lucet功能

    2019-04-02 11:04

    导读: 云端服务供应商Fastly释出Lucet开源专案,这是原生的WebAssembly编译器和Runtime,目的是要将WebAssembly带出浏览器,在开发者的应用程式中,安全地执行不受信任的WebAssembly程式。 WebAssembly是新一代网页格式,为C、C++以及Rust等高阶程式语言的编译,提

    云端服务供应商Fastly释出Lucet开源专案,这是原生的WebAssembly编译器和Runtime,目的是要将WebAssembly带出浏览器,在开发者的应用程式中,安全地执行不受信任的WebAssembly程式。



    WebAssembly是新一代网页格式,为C、C++以及Rust等高阶程式语言的编译,提供可移植性的优点,开发者可以选择将WebAssembly网页应用程式,部署在客户端或是伺服器端,而且由于WebAssembly是为堆叠机器设计的二元格式,能够在广泛的平台中,以原生速度执行程式码。

    看上WebAssembly省资源且高执行效率的优点,Fastly现在扩充其云端平台,支援执行WebAssembly程式的能力,让使用者不再受限使用Fastly VCL(Varnish Configuration Language)脚本语言,而是能以更多元的程式语言,像是Rust、TypeScript、C和C++等程式语言开发程式。为此Fastly即将推出WebAssembly边缘运算平台Terrarium,而Lucet则是其背后的引擎。


    Lucet使用Mozilla的Cranelift程式码产生器建构而成,Cranelift专案被用于Firefox的WebAssembly和JavaScript的JIT引擎中,而Lucet还支援最新的WebAssembly模组化标准系统介面WASI,WASI则是个新的标准,能将核心功能,像是档案系统、网路或是其他系统装置安全地开放给WebAssembly程式。 Mozilla要以WASI扩展WebAssembly的可移植性,使其不靠浏览器也能在多个平台执行,Fastly提到,在Lucet支援WASI可以让使用者在任何平台执行WebAssembly程式,包括云端、边缘、浏览器、电脑或是智慧型手机。

    Lucet可以让边缘云端以同一个程序,在不会影响安全性的情况下,执行数以万计的WebAssembly程式。 Lucet有两个元件编译器以及Runtime,编译器可以将WebAssembly模组编译成为原生程式码,而Runtime则可以管理资源并捕捉Runtime错误,编译器与Runtime协同合作能够确保每个WebAssembly程式仅能存取自己的资源。

    Lucet可以在50微秒内,使用KB大小的?#19988;?#20307;实例化WebAssembly模组,Chromium的V8引擎则需要花?#35328;?毫秒和MB大小的?#19988;?#20307;,才能建置JavaScript或WebAssembly程式实例。 Fastly提到,Lucet是专为将WebAssembly转为原生执行机器码设计的AOT(Ahead-Of-Time)编译,比起为浏览器引擎设计的JIT(Just-In-Time)编译,在Runtime设计上更简单,执行起来也更省资源。

    福建36选7开奖公告