写点什么

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:004758

评论

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

Go Mutex:保护并发访问共享资源的利器

陈明勇

Go golang mutex 互斥锁 三周年连更

华为云CDN,助力企业数字化转型

YG科技

云计算

华为云CDN:让网络延时,成为过去时!

YG科技

Python中的哈希表

Echo_Wish

Python 数据结构 哈希表

文心一言 VS chatgpt (12)-- 算法导论3.1 6~7题

福大大架构师每日一题

ChatGPT 文心一言

自动回收内存:Go语言的GC垃圾回收机制详解

Jack

Last Week in Milvus

Zilliz

Milvus Zilliz 向量数据库

智能感知编码优化与落地实践

Baidu AICLOUD

视频编解码

华为云全球加速GA,让企业获得更优质的服务体验

平平无奇爱好科技

2022-04-24:用go语言重写ffmpeg的muxing.c示例。

福大大架构师每日一题

Go 音视频 ffmpeg

一个神奇的小工具,让URL地址都变成了"ooooooooo"

南城FE

JavaScript 前端 url

《俞军产品方法论》

石云升

读书笔记 三周年连更

最常用的从A到Z的Linux命令,真的很好记,三分钟刷完!

wljslmz

Linux 三周年连更

2023 年最全面的 DevOps 工具列表,你用过几个?

Java架构历程

DevOps 三周年连更

汽车制造数字化转型如何做?有哪些可行性案例?

优秀

数字化转型 汽车制造

小程序容器技术保障车载业务生态中的应用安全

FinFish

小程序容器 小程序技术 车载业务 车载生态 车载应用

华为弹性云服务器ECS,帮助企业节省成本上云成本

平平无奇爱好科技

云计算,

测试需求平台9-Table组件应用产品列表优化

MegaQi

测试平台开发 三周年连更

Nautilus Chain :基于模块化架构的Layer3正在走向成熟

西柚子

华为云D-Plan解决方案助力汽车零部件质检智能化

轶天下事

华为云弹性公网IP服务,实惠又便捷!

轶天下事

为什么企业们更偏好使用华为云CDN?

YG科技

华为云CDN加速为中小企业数字化效力

YG科技

【Python实战】Python采集电影评论

BROKEN

三周年连更

TypeScript 函数 详解

程序员海军

Vue3 Typescript 三周年连更

云环境中的灾备规划与分析

穿过生命散发芬芳

灾备 三周年连更

Cookie与缓存的指导性规则

阿泽🧸

HTTP 三周年连更

Android补间动画

芯动大师

三周年连更 帧动画 补间动画

【Python实战】Python采集最低战力信息

BROKEN

三周年连更

ADB模拟按手机上的“菜单”键

IT蜗壳-Tango

三周年连更

华为云WAF设置要塞,筑起企业网络安全万里长城

轶天下事

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