CDN 供应商 Fastly 最近开源了 Lucet 项目,这是一个 WebAssembly 原生的编译器和运行时。Lucet 可以让边缘服务开发者不受供应商、语言、或者 API(程序编程接口)的限制制定大规模边缘定制方案。
Lucet 是围绕 Wasm( WebAssembly )以及 WASI( WebAssembly 系统接口 )而设计的。开发者可以选择任何语言,如 Rust、TypeScript、C 或 C++ 等高级语言,只要这些语言能编译成 WebAssembly 即可。WASI 则不单单允许浏览器,任何实现了预定义 WASI 接口的平台都可以执行 Wasm 代码。在所有支持 WASI 的平台上,Lucet 可以更好地平衡 WebAssembly 的安全、近原生速度以及多语言支持等特性。
Fastly 高级软件工程师 Pat Hickey 详细解释了 Lucet 的性能需求:
Lucet 的一个主要设计目的就是能够执行 Fastly 处理的所有请求。这意味着 Lucet 需要能够为每个进程中每秒数以万计的请求都创建一个 WebAssembly 实例,这需要 Lucet 的消耗要远小于一般浏览器中的 JavaScript 引擎。Lucet 能够在 50 微秒以内启动一个 WebAssembly 实例,而且内存负载不会超过几 KB。相比之下,Chromium 的 V8 引擎需要 5 毫秒,几十兆大小的内存来启动一个 JavaScript 或 WebAssembly 程序。
对于 Lucet 的安全特性:
通过 Lucet,Fastly 的边缘云能够在同一个进程中同时执行数以万计的 WebAssembly 程序,同时又不会损害其安全性。Lucet 编译器和运行时确保 WebAssembly 程序只能访问自己专有的资源。这意味着 Fastly 的客户能够在不影响安全性的前提下使用更常见的通用语言来编写和运行程序。
开发者可以选择自己顺手的语言进行边缘开发,这样也更容易突破供应商和 API 的潜在限制,并能够为诸如 A/B 测试或认证相关的技术和业务问题实现自定义方案。
尽管 Fastly 只是最近才开源 Lucet,但作为 Terrarium 项目的引擎,Lucet 已经在生产环境中使用几个月了。文档和实例可参考 Lucet 仓库 。
WebAssembly ,作为堆栈式虚拟机的二进制指令格式,主要被用来作为移植 C、C++ 或者 Rust 等高级语言的目标代码,从而可以在 Web 上部署客户端服务端程序。如今, 四种主要的浏览器引擎 都实现了 WebAssembly。WASI 作为 WebAssembly 平台的系统接口,旨在让 WebAssembly 程序在所有的设备、计算机或操作系统上运行。
查看英文原文: Fastly Open-Sources Lucet, Its WebAssembly Compiler and Runtime
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 为鸿蒙开路!华为:方舟编译器8月正式开源
- SBCL 1.5.5 发布,开源 Common Lisp 编译器
- SBCL 1.5.9 发布,开源 Common Lisp 编译器
- 英特尔基于 LLVM 的 SYCL 开源编译器现已发布
- 方舟编译器将开源!华为邀广大开发者助力鸿蒙系统
- Intel最初开源、基于LLVM的SYCL编译器现在已经可用
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
AJAX企业级开发
Davec Johnson、Alexeic White、Andrec Charland / 张祖良、荣浩、高冰 / 人民邮电出版社 / 2008 / 49.00元
本书首先解释了AJAX 为什么在大规模的开发中能有如此广阔的应用前景,接着系统地介绍了当前重要的AJAX 技术和组件。你将看到把数据表、Web 窗体、图表、搜索和过滤连接在一起用于构建AJAX应用程序的框架开发的整个过程;在此基础上,本书给出了已经过证实的AJAX 架构模式,以及来源于实际的.NET 和Java AJAX 应用程序的案例研究。一起来看看 《AJAX企业级开发》 这本书的介绍吧!