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

介绍我们的下一代 JavaScript SDK

Dec 05, 2024 am 02:21 AM

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

热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

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

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

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

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1675
14
CakePHP 教程
1429
52
Laravel 教程
1333
25
PHP教程
1278
29
C# 教程
1257
24
Python vs. JavaScript:学习曲线和易用性 Python vs. JavaScript:学习曲线和易用性 Apr 16, 2025 am 12:12 AM

Python更适合初学者,学习曲线平缓,语法简洁;JavaScript适合前端开发,学习曲线较陡,语法灵活。1.Python语法直观,适用于数据科学和后端开发。2.JavaScript灵活,广泛用于前端和服务器端编程。

JavaScript和Web:核心功能和用例 JavaScript和Web:核心功能和用例 Apr 18, 2025 am 12:19 AM

JavaScript在Web开发中的主要用途包括客户端交互、表单验证和异步通信。1)通过DOM操作实现动态内容更新和用户交互;2)在用户提交数据前进行客户端验证,提高用户体验;3)通过AJAX技术实现与服务器的无刷新通信。

JavaScript在行动中:现实世界中的示例和项目 JavaScript在行动中:现实世界中的示例和项目 Apr 19, 2025 am 12:13 AM

JavaScript在现实世界中的应用包括前端和后端开发。1)通过构建TODO列表应用展示前端应用,涉及DOM操作和事件处理。2)通过Node.js和Express构建RESTfulAPI展示后端应用。

了解JavaScript引擎:实施详细信息 了解JavaScript引擎:实施详细信息 Apr 17, 2025 am 12:05 AM

理解JavaScript引擎内部工作原理对开发者重要,因为它能帮助编写更高效的代码并理解性能瓶颈和优化策略。1)引擎的工作流程包括解析、编译和执行三个阶段;2)执行过程中,引擎会进行动态优化,如内联缓存和隐藏类;3)最佳实践包括避免全局变量、优化循环、使用const和let,以及避免过度使用闭包。

Python vs. JavaScript:社区,图书馆和资源 Python vs. JavaScript:社区,图书馆和资源 Apr 15, 2025 am 12:16 AM

Python和JavaScript在社区、库和资源方面的对比各有优劣。1)Python社区友好,适合初学者,但前端开发资源不如JavaScript丰富。2)Python在数据科学和机器学习库方面强大,JavaScript则在前端开发库和框架上更胜一筹。3)两者的学习资源都丰富,但Python适合从官方文档开始,JavaScript则以MDNWebDocs为佳。选择应基于项目需求和个人兴趣。

Python vs. JavaScript:开发环境和工具 Python vs. JavaScript:开发环境和工具 Apr 26, 2025 am 12:09 AM

Python和JavaScript在开发环境上的选择都很重要。1)Python的开发环境包括PyCharm、JupyterNotebook和Anaconda,适合数据科学和快速原型开发。2)JavaScript的开发环境包括Node.js、VSCode和Webpack,适用于前端和后端开发。根据项目需求选择合适的工具可以提高开发效率和项目成功率。

C/C在JavaScript口译员和编译器中的作用 C/C在JavaScript口译员和编译器中的作用 Apr 20, 2025 am 12:01 AM

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。 1)C 用于解析JavaScript源码并生成抽象语法树。 2)C 负责生成和执行字节码。 3)C 实现JIT编译器,在运行时优化和编译热点代码,显着提高JavaScript的执行效率。

Python vs. JavaScript:比较用例和应用程序 Python vs. JavaScript:比较用例和应用程序 Apr 21, 2025 am 12:01 AM

Python更适合数据科学和自动化,JavaScript更适合前端和全栈开发。1.Python在数据科学和机器学习中表现出色,使用NumPy、Pandas等库进行数据处理和建模。2.Python在自动化和脚本编写方面简洁高效。3.JavaScript在前端开发中不可或缺,用于构建动态网页和单页面应用。4.JavaScript通过Node.js在后端开发中发挥作用,支持全栈开发。

See all articles