写点什么

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

评论

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

Java基础(三)| switch、循环及Random详解

timerring

Java random Switch 循环 10月月更

2022Q3消费级AR眼镜市场季度分析:国产品牌纷纷发力,市场全面启航

易观分析

科技 AR眼镜 季度报告

十大 CI/CD 安全风险(三)

SEAL安全

DevOps CI/CD DevSecOps 软件供应链安全

Vue基础-插值表达式-数据驱动视图-指令系统

默默的成长

前端 Vue 3 10月月更

三方库移植之NAPI开发[1]—Hello OpenHarmony NAPI

离北况归

OpenHarmony

技术分享 | app自动化测试(Android)-- 特殊控件 Toast 识别

霍格沃兹测试开发学社

Qt | 便捷类中使用拖放功能 Drag

YOLO.

qt 10月月更 C++

搜索中常见数据结构与算法探究(二)

京东科技开发者

数据结构 算法 时间复杂度 KMP 算法与数据结构

干货 | 接口自动化测试分层设计与实践总结

霍格沃兹测试开发学社

技术分享 | app自动化测试(Android)-- Capability 使用进阶

霍格沃兹测试开发学社

测试人生 | 疫情之下工资翻了2倍多,这4个月学习比工作8年学到的还多

霍格沃兹测试开发学社

猜数字游戏

掘金安东尼

算法 10月月更

Wave-2 802.11ac SoC for Routers, Gateways and Access Points//IPQ4019,IPQ4029,Wallys

wallys-wifi6

IPQ4019 ipq4029

使用 Zpan 搭建低成本个人私有网盘,还不限速

华为云开发者联盟

云计算 华为云 网盘 企业号十月 PK 榜

笔记本电脑内卷之争:华硕4+4无忧保脱颖而出

Geek_2d6073

6步搭建一个飞机大战游戏

华为云开发者联盟

云计算 软件开发 华为云 企业号十月PK榜

技术分享 | app自动化测试(Android)-- 属性获取与断言

霍格沃兹测试开发学社

技术分享 | app自动化测试(Android)-- 参数化用例

霍格沃兹测试开发学社

Qt | 视图便捷类的使用 QListWidget QTreeWidget QTableWidget

YOLO.

qt 10月月更 C++

启科量子开源量子编程框架 QuTrunk

启科量子开发者官方号

人工智能 开发工具 量子计算 量子技术 启科量子

VUE 初学者基础知识

默默的成长

Vue 前端 10月月更

StampedLock:一个并发编程中非常重要的票据锁

华为云开发者联盟

高并发 开发 华为云 企业号十月PK榜

啃论文俱乐部——移植speexdsp到OpenHarmony标准系统⑥

离北况归

OpenHarmony

【LeetCode】最长公共前缀Java题解

Albert

LeetCode 10月月更

十问分布式数据库:技术趋势、选型及标准思考

OceanBase 数据库

Java中方法的定义和调用

共饮一杯无

Java 后端 10月月更

EasyCV DataHub 提供多领域视觉数据集下载,助力模型生产

阿里云大数据AI技术

深度学习 开源 模型 计算机上视觉

Java中流程控制语句

共饮一杯无

Java 流程控制 10月月更

一个值得深思的话题:Wi-Fi 7的诞生会不会取代 5G 网络?

wljslmz

5G 无线技术 10月月更 WiFi7

技术分享 | app自动化测试(Android)--显式等待机制

霍格沃兹测试开发学社

记录第二天-Vue起步

默默的成长

前端 Vue 3 10月月更

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