Cloudflare 推出 workerd,开源 JavaScript/Wasm 运行时

Cloudflare 宣布推出 workerd 的第一个 beta 版本,这是一个 JavaScript/Wasm 运行时;基于与 Cloudflare Workers 相同的代码,并在 Apache-2.0 许可下开源。Cloudflare Workers 是一个在公司的内容交付网络上运行的无服务器平台,旨在为任何地区的用户提供低延迟。

Cloudflare Workers 的技术负责人 Kenton Varda 介绍称,workerd 与支持 Cloudflare Workers 的运行时共享大部分代码,但进行了一些更改以使其更易于移植到其他环境。名称“workerd”源自 Unix 命名服务器的传统,使用“-d”后缀代表“daemon”。该名称没有大写是因为它是一个 program name,遵循了类 Unix 环境中的小写传统。

虽然它与 Cloudflare Workers 共享代码,但 Varda 指出,完整的 Cloudflare Workers 服务涉及到 workerd 本身之外的许多技术,包括额外的安全性、部署机制、编排等等。“workerd 本身是我们运行时代码库的一部分,它本身是整个 Cloudflare Workers 服务的一小部分(尽管很关键)。但我们很高兴,这意味着我们可以在一个宽松的开源许可下发布这段代码”。

根据介绍,通过 workerd,为 Cloudflare Workers 编写代码的开发者可以在本地、或自我托管、或在其他服务上运行代码,减少被锁定的风险。workerd 旨在促进对 Workers 进行实际的本地测试;以及可以用作 Web 服务器,充当应用程序主机、代理或两者兼而有之,其支持正向和反向代理模式。

Varda 指出,“在可能的情况下,Workers(尤其是 workerd)提供与 Web 浏览器中相同的标准 API,例如 Fetch、URL、WebCrypto 等。这意味着基于 workerd 构建的代码更有可能移植到浏览器以及其他基于标准的运行时”。

此外,workerd 还是一个 nanoservice 运行时。Nanoservices 是一种新模型,它实现了独立部署的好处,其开销更接近于库调用的开销。使用 workerd,可以将许多 Worker 配置为在同一个进程中运行。每个 Worker 运行在一个单独的“isolate”中,给人一种独立于其他运行的感觉:每个 isolate 加载单独的代码并具有自己的全局范围。然而,当一个 Worker 明确向另一个 Worker 发送请求时,目标 Worker 实际上以零延迟运行在同一个线程中。因此,它更像是一个函数调用。

不过有外媒指出,虽然这一设计性能友好,但却会影响安全性。workerd worker 的设计使其无法访问其未被授予访问权限的资源,但对于 workerd 本身或 V8 引擎中的错误或漏洞而言它并不安全,因此需要额外的安全保障。Varda 也表示,Cloudflare Workers 中的安全性部分并不包含在开源版本中。

他补充称,workerd 的一个主要好处是“它允许一种新的开发模型,你可以将应用程序拆分为更小的组件。在 Workers 上部署代码也比在传统云供应商上管理服务器要容易得多”。

至于为什么是 JavaScript/Wasm 而不选择 Java、.NET 或 Python 等其他语言。Varda 则解释道,“Containers 太重了以至于无法支持 nanoservices 模型......JavaScript 和 Wasm 是我们唯一可行的、可以满足我们的 isolation 需求的较轻量级的选择。其他语言的虚拟机一般都不是为这种细粒度的 isolation 用例设计的,也没有经过实战检验”。

Varda 还在 Hacker News 回答了一些网友提问,也有开发者反馈了一些 workerd 相关的积极评价。

更多详情可查看官方博客

优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/news/212226/cloudflare-workerd-open-source

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。