写点什么

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

评论

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

亿级大表分库分表实战总结(万字干货,实战复盘)

学习 编程 架构 计算机网络

「Spring Boot 2.4 新特性」一键构建Docker镜像

AI乔治

Java Docker 架构

程序员求助:腾讯面试题,64匹马8个跑道,多少轮选出最快的四匹

Java架构师迁哥

anyRTC AI降噪|让声音更清晰

anyRTC开发者

人工智能 AI 音视频 WebRTC RTC

React Fiber 是什么?

局外人

react.js 大前端 React

SQL数据库:子查询和关联子查询

正向成长

SQL子查询 SQL关联查询

MySQL全面瓦解—子查询和组合查询

比伯

Java 编程 程序员 架构 计算机

数字货币钱包开发费用,区块链钱包开发优势

13530558032

牛批!2w字的Java集合框架面试题精华集(2020最新版),赶紧收藏。

Java架构之路

Java 程序员 架构 面试 编程语言

不要拿区块链做挡箭牌

CECBC

区块链

多线程问的太深入不知道怎么回答,从volatile开始给你讲清楚

小Q

Java 学习 面试 volatile 多线程

关于linux操作系统中的buff/cache

程序员架构进阶

Linux cache buffer

干货!直观地解释和可视化每个复杂的DataFrame操作

计算机与AI

Python pandas 数据处理

【乘风破浪的开发者】丁一超:从AI实战营出发探索未知的AI世界

华为云开发者联盟

华为 AI modelarts

数字货币助力支付体系高效运行

CECBC

金融

拒招中国程序员后,开源平台 GitLab 又开始大规模封杀开发者账户

Java架构师迁哥

从红黑树的本质出发,彻底理解红黑树!

996小迁

Java 架构 面试 程序人生

SQL数据库:CASE表达式

正向成长

CASE表达式

云算力挖矿模式系统开发,云算力平台搭建

13530558032

覆盖全网的阿里微服务架构有多牛:K8S+实战+笔记+项目教程

Java~~~

Java 程序员 微服务 Spring Cloud 阿里云 K8S

报告显示国际区块链监管呈三大趋势

CECBC

区块链 货币 监管

刷Github时发现了一本阿里大神的算法笔记!标星70.5K

Java架构师迁哥

遥感影像处理有高招,“专治”各类花式并发的述求!

华为云开发者联盟

容器 k8s 遥感

数字货币交易所功能,场外OTC交易所开发公司

13530558032

《精通lambda表达式:Java多核编程》.pdf

田维常

Lambda

那个小白还没搞懂内存溢出,只能用案例说给他听了

田维常

内存溢出

#不吐不快# IT职场里的奇葩经历

InfoQ写作社区官方

职场搞笑 奇葩的经历 热门活动

USDT币支付系统开发搭建,区块链承兑商支付平台

13530558032

Alibaba首发的《Java技术成长笔记》,渴望提升自己的程序员的必备宝典!

Java架构之路

Java 程序员 架构 面试 编程语言

“3+3”看华为云FusionInsight如何引领“数据新基建”持续发展

华为云开发者联盟

数据库 新基建 华为云

这套JVM核心知识你要全都会,月薪还不过18K可以直接跳槽了

小Q

Java 学习 架构 面试 JVM

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