搜索
首页web前端js教程介绍我们的下一代 JavaScript SDK

Introducing our Next-Generation JavaScript SDK

作者:Till Schneidereit

今天我们很高兴地宣布推出全新的 JavaScript SDK。该 SDK 完全重写了我们之前的 JavaScript SDK,大大改进了生态系统兼容性、标准合规性、稳健性和关键新功能。

此版本还让我们走上了一条显着提高性能并持续改进与现有 JavaScript 应用程序兼容性的道路。

同时,我们保留了与之前的 SDK 的高度兼容性,因此对于大多数用户来说升级应该很简单。

让我们更详细地了解此版本的新增功能和不同之处。

建立在 SpiderMonkey、StarlingMonkey 和 ComponentizeJS 的强大基础之上

之前的 SDK 构建在 QuickJS JavaScript 引擎和 Javy 运行时之上,而新 SDK 构建在 Firefox 浏览器的 SpiderMonkey 引擎、字节码联盟的 StarlingMonkey 运行时和 ComponentizeJS WIT 绑定生成器之上。

这些项目共同为我们的 SDK 提供了极好的基础:

  • SpiderMonkey 是为 Firefox 浏览器提供支持的 JavaScript 引擎。它已经开发了 20 多年,每天有数百万用户使用,并且可以说达到了只有大型浏览器引擎才能达到的成熟度。
  • StarlingMonkey 是我们与 Fastly 的朋友一起构建的 JavaScript 运行时,并为字节码联盟做出了贡献。它以高度模块化的方式构建在 SpiderMonkey 之上,可以轻松根据我们的用例进行配置。至关重要的是,它实现了关键 Web API 的实现,可显着提高与 Web 生态系统的兼容性,例如用于处理传出 HTTP 请求的 fetch API、用于处理传入请求的 Service Workers 规范的关键部分、使用流式处理请求和响应主体Web 的 Streams API StreamssetTimeout 和 setInterval。
  • **ComponentizeJS **是一个可以在 JavaScript 中使用 WIT 接口描述语言定义的外部接口的工具。这使得不仅可以轻松使用 Spin 提供的接口以及 WASI 中包含的接口,还可以轻松使用其他 WebAssembly 组件中实现的功能,包括用 Rust、Go、Python 或 C/C 等其他语言编写的组件。

引擎盖下的彻底改变,表面上的小调整

如上所述,我们的 JS 支持的新实现与旧实现几乎没有什么不同。好消息是,由于 JavaScript 具有异常强大的规范,我们可以完成这一切,而无需冒微妙破坏现有代码的风险。虽然新的 SDK 附带了稍微调整的 API,在升级现有项目时也需要进行同样微小的更改,但完全替换底层平台不会对兼容性产生任何影响。

从那里,他们就可以开始利用新 SDK 带来的新功能。值得注意的是,我们调整了 API,以便轻松集成流式 HTTP 主体,而无需完全重写现有代码。

基于标准的新 API

我们在 fetch API 和 Service Workers 规范标准之上实现了对现有 API 的支持(稍作调整的版本)。如果开发人员愿意,可以选择直接使用这些标准,从而大大提高与更广泛的 Web 和 JS 生态系统的兼容性。

标准也以完全不同的方式提供帮助:由于所有 HTTP 支持现在都是使用 wasi-http 构建的,因此使用新 SDK 构建的、不使用我们也支持的 Spin 特定 API 的应用程序也可以运行在任何支持 wasi-http 的环境中,例如 Wasmtime 和 Node.js(通过 JCO)。

只是开始

在此版本中,我们专注于以直接兼容的方式更改 JavaScript 支持的底层平台,同时已经获得了对现代 Web 标准的支持、与其他 WebAssembly 组件的可组合性以及为未来奠定更强大和成熟的基础发展。

展望未来,我们将看到性能、兼容性和新功能的快速改进。先睹为快,作品中一些最令人兴奋的进展是:

  • 性能改进:Fastly 团队一直致力于 WebAssembly 中 JavaScript 执行的显着性能改进。这项工作的第一次迭代刚刚集成到 StarlingMonkey 中,并且已经使执行速度提高了数倍,具体取决于具体的工作负载。该集成昨天刚刚完成,因此尚未集成到我们的 JS SDK 中,但很快就会集成。
  • 提高了与 Web 和 JavaScript 生态系统的兼容性:我们即将对 StarlingMonkey 进行一项关键改进:能够使用 Rust 而不是 C 来实现运行时本身的部分内容以及它提供的 Web API 。这将使您更容易跟上 Web 生态系统的最新发展,并提供更完整和兼容的 Web API 实现,这对于与现有 JavaScript 应用程序的兼容性至关重要。并非所有 JS 代码都使用基于(网络)标准的 API:许多代码都使用 Node.js API。我们正在努力为这些 API 提供兼容层,以便开发人员可以在他们的 Spin 应用程序中使用它们。
  • 支持更多触发器类型:目前,新的 JavaScript SDK 仅支持 HTTP 触发器。我们正在努力添加对更多触发器类型的支持,例如 Cron 和 Redis 触发器。 ## 保持联系 我们很高兴能够与您分享这个新的 SDK,并且在我们不断改进它的过程中期待您的反馈和贡献。请加入 Fermyon Discord 服务器中的聊天或我们的每周项目会议,并在 X(以前称为 Twitter)@fermyontech 和 @spinframework 上关注我们!

以上是介绍我们的下一代 JavaScript SDK的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
JavaScript的核心:它是在C还是C上构建的?JavaScript的核心:它是在C还是C上构建的?May 05, 2025 am 12:07 AM

javascriptisnotbuiltoncorc; saninterpretedlanguagethatrunsonenginesoftenwritteninc.1)javascriptwasdesignedAsalightweight,解释edganguageforwebbrowsers.2)Enginesevolvedfromsimpleterterterpretpreterterterpretertestojitcompilerers,典型地提示。

JavaScript应用程序:从前端到后端JavaScript应用程序:从前端到后端May 04, 2025 am 12:12 AM

JavaScript可用于前端和后端开发。前端通过DOM操作增强用户体验,后端通过Node.js处理服务器任务。1.前端示例:改变网页文本内容。2.后端示例:创建Node.js服务器。

Python vs. JavaScript:您应该学到哪种语言?Python vs. JavaScript:您应该学到哪种语言?May 03, 2025 am 12:10 AM

选择Python还是JavaScript应基于职业发展、学习曲线和生态系统:1)职业发展:Python适合数据科学和后端开发,JavaScript适合前端和全栈开发。2)学习曲线:Python语法简洁,适合初学者;JavaScript语法灵活。3)生态系统:Python有丰富的科学计算库,JavaScript有强大的前端框架。

JavaScript框架:为现代网络开发提供动力JavaScript框架:为现代网络开发提供动力May 02, 2025 am 12:04 AM

JavaScript框架的强大之处在于简化开发、提升用户体验和应用性能。选择框架时应考虑:1.项目规模和复杂度,2.团队经验,3.生态系统和社区支持。

JavaScript,C和浏览器之间的关系JavaScript,C和浏览器之间的关系May 01, 2025 am 12:06 AM

引言我知道你可能会觉得奇怪,JavaScript、C 和浏览器之间到底有什么关系?它们之间看似毫无关联,但实际上,它们在现代网络开发中扮演着非常重要的角色。今天我们就来深入探讨一下这三者之间的紧密联系。通过这篇文章,你将了解到JavaScript如何在浏览器中运行,C 在浏览器引擎中的作用,以及它们如何共同推动网页的渲染和交互。JavaScript与浏览器的关系我们都知道,JavaScript是前端开发的核心语言,它直接在浏览器中运行,让网页变得生动有趣。你是否曾经想过,为什么JavaScr

node.js流带打字稿node.js流带打字稿Apr 30, 2025 am 08:22 AM

Node.js擅长于高效I/O,这在很大程度上要归功于流。 流媒体汇总处理数据,避免内存过载 - 大型文件,网络任务和实时应用程序的理想。将流与打字稿的类型安全结合起来创建POWE

Python vs. JavaScript:性能和效率注意事项Python vs. JavaScript:性能和效率注意事项Apr 30, 2025 am 12:08 AM

Python和JavaScript在性能和效率方面的差异主要体现在:1)Python作为解释型语言,运行速度较慢,但开发效率高,适合快速原型开发;2)JavaScript在浏览器中受限于单线程,但在Node.js中可利用多线程和异步I/O提升性能,两者在实际项目中各有优势。

JavaScript的起源:探索其实施语言JavaScript的起源:探索其实施语言Apr 29, 2025 am 12:51 AM

JavaScript起源于1995年,由布兰登·艾克创造,实现语言为C语言。1.C语言为JavaScript提供了高性能和系统级编程能力。2.JavaScript的内存管理和性能优化依赖于C语言。3.C语言的跨平台特性帮助JavaScript在不同操作系统上高效运行。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。