JS和JVM大方联手,RingoJS让后端愉快写JS?

前有科技后进阶 2024-02-06 17:41:02

大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!

1. 什么是 Ringo

Ringo 是一个基于 JVM 构建的 JavaScript 平台,并针对服务器端应用程序进行了众多优化。Ringo 的底层是基于 Mozilla Rhino JavaScript 引擎,Rhino 是完全用 Java 编写的 JavaScript 的开源实现,Ringo 引擎已作为默认 Java 脚本引擎嵌入在 Java 6 中,并为数千个应用程序提供支持。

同时,Ringo 本身增强 Rhino 来运行多线程代码,Ringo 的核心模块经过充分测试和记录。

RingoJS is a JavaScript platform built on the JVM and optimized for server-side applications.

Ringo 为 Rhino 添加了许多功能,使其更适合现实世界大规模应用程序开发,核心特点:

快速、自动重新加载且兼容 CommonJS 的模块加载器一组丰富的模块,涵盖 I/O、日志记录、开发工具等等支持阻塞和非阻塞 I/O基于 Jetty 项目的可扩展 HTTP 服务器支持 CommonJS 包来安装或编写附加软件组件2. 如何使用 RingoJS 创建一个简单的 Web 应用程序

RingoJS 的目标是提供一个脱离浏览器的 JavaScript 平台,该平台具有正确的功能组合和简单性,易于使用且易于部署。 主要目标是构建一个稳定、高性能的运行时供服务器端使用,下面是创建一个简单的 Web 应用程序所需的代码如下:

exports.app = function(req) { return { status: 200, headers: {"Content-Type": "text/plain"}, body: ["Hello World!"] };};if (require.main == module) { require("ringo/httpserver").main(module.id);}

只需将上面的代码保存为 “server.js” 并通过执行命令 ringo server.js 来运行。与大多数 Ringo 应用程序一样,此应用程序将自动重新加载,包括开发者所做的任何更改,无需重新启动。

值得一提的是,Ringo 不仅可以让开发者编写 Web 应用程序。 其还允许开发者无缝地使用任何 Java 标准类或外部库,只需将其放入类路径即可。 这使得将 Ringo 集成到现有 Java 环境中变得非常容易,并且可以重用现有 Java 代码,而无需付出大量努力或出现移植问题。

3. 命令行脚本

RingoJS 一个非常有用的功能是集成的 REPL(Read-Eval-Print-Loop)。

开发者可以通过启动 ringo 来输入,而无需从命令行输入任何参数。 这会带来一个 Ringo 环境,可用于调试、测试运行时。 由于与 Java 的深度集成,可以用 JavaScript 编写 CLI 工具来访问任意 Java 库。

RingoJS 所有正式版本都将由至少一个已发布的密钥签名。通过以下方式获取 3.0.0 及更高版本的最新发行密钥:

$ gpg --keyserver hkps://keys.openpgp.org --recv-keys 14059F1764856429089FB4236167CFBBBDF2A508

下载该版本的校验和 SHASUMS256.txt 和单独的签名 SHASUMS256.txt.sig,例如:

$ curl -LO https://github.com/ringo/ringojs/releases/download/v4.0.0/SHASUMS256-4.0.0.txt$ curl -LO https://github.com/ringo/ringojs/releases/download/v4.0.0/SHASUMS256-4.0.0.txt.sig

接下来可以使用以下命令验证校验和:

$ gpg --verify SHASUMS256-4.0.0.txt.siggpg: assuming signed data in 'SHASUMS256-4.0.0.txt'gpg: Signature made Wed Feb 23 12:07:10 2022 CETgpg: using RSA key 14059F1764856429089FB4236167CFBBBDF2A508gpg: Good signature from "Philipp Naderer-Puiu <philipp@naderer-puiu.at>" [ultimate]4.本文总结

本文主要和大家介绍 Ringo ,其是一个基于 JVM 构建的 JavaScript 平台,并针对服务器端应用程序进行了众多优化。Ringo 的底层是基于 Mozilla Rhino JavaScript 引擎,该引擎已经作为默认 Java 脚本引擎嵌入在 Java 6 中,并为数千个应用程序提供支持。因为篇幅问题,关于 Ringo 主题只是做了一个简短的介绍,但是文末的参考资料提供了大量优秀文档以供学习,如果有兴趣可以自行阅读。如果大家有什么疑问欢迎在评论区留言。

参考资料

https://ringojs.org/

https://github.com/ringo/ringojs

https://www.linkedin.com/

https://graffersid.com/java-vs-javascript/

https://github.com/mozilla/rhino

3 阅读:672
评论列表

前有科技后进阶

简介:感谢大家的关注