写点什么

Fastly 开源 Lucet:WebAssembly 的编译器和运行时

  • 2019-04-15
  • 本文字数:948 字

    阅读完需:约 3 分钟

Fastly开源Lucet:WebAssembly的编译器和运行时

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


2019-04-15 08:004657

评论

发布
暂无评论
发现更多内容

多租户如何独立进行开发测试?

paraboy1

波特五力模型

石云升

创业 战略 职场经验 5月日更

数据仓库如何确定主题域?

数据社

数据仓库 5月日更

招行票付通对接总体流程

try catch

支付 商业票据

显示器的未知之海:从电脑窗口到数字世界的Mate级探险

脑极体

未来每个人的生活可能都会离不开区块链

CECBC

区块链专家与媒体面对面 | “区块链让数据产生价值”

CECBC

Flink的分布式缓存

大数据技术指南

flink 5月日更

对账模块和赊购退款、还款流程

try catch

支付 退款 对账 赊购

阿里专家离职带出来的Java面试全秘籍,我看了三个月,就收到了京东的offer

Java 程序员 架构 面试 计算机

5分钟速读之Rust权威指南(七)

wzx

rust

“产学合作,协同育人”——安谋中国集成电路人才发展趋势沙龙圆满举行

脑极体

520有感而发

yu

520 单身福利

翻译:谁将在AI中赚钱?by Simon Greenman John 易筋 ARTS 打卡 Week 48

John(易筋)

ARTS 打卡计划

人工智能--野人过河

空城机

Java 算法 5月日更 大学笔记

521的祝福-北爱的回忆

数据一哥

520单身福利 520 单身福利

中国数字货币释放利好消息!

CECBC

智慧公安微警务APP搭建,公安信息化建设

工业互联网平台赋能需充分挖掘数据价值

Docker 入门

飞跃

支付网关整体架构图

try catch

支付 支付网关

【得物技术】统一OLAP查询平台之语义层

得物技术

OLAP 查询 得物技术 平台 语义

内卷是必然

ES_her0

5月日更

关于爱情的碎碎念

穿过生命散发芬芳

520单身福利

架构学习笔记:架构设计3原则

风翱

架构 5月日更

学习笔记之:05 | 数组:一秒钟,定义 1000 个变量

Nydia

学习

专访新腾数致研发总监金涛:新思想、新工具与新效率

CODING DevOps

敏捷开发 研发团队

apache dubbo 自定义全局统一的异常处理器

try catch

后台开发:核心技术与应用实践 — C++

奔着腾讯去

c++ 面向对象 服务器开发 C++后台开发

C#常用特性和快捷键

fox

520单身福利

Docker 镜像和容器

飞跃

Docker 520 单身福利

Fastly开源Lucet:WebAssembly的编译器和运行时_大前端_Bruno Couriol_InfoQ精选文章