Rat Javascript - 小型javascript/ecmascript解释器
RATJS是一个用C语言实现的小型javascript/ecmascript解释器。你可以用它来运行自己的javascript程序,也可以将它作为脚本引擎嵌入自己开发的程序中。
下载
https://gitee.com/gongke1978/ratjs
特性
- 兼容ECMA262标准第14版
- Symbol
- Generator
- Promise
- Async function
- Arrow function
- Async module
- Big integer
- Typed array
- Array buffer/Shared array buffer
- DataView
- Atomics
- Map/Set/WeakSet/WeakMap
- WeakRef/FinalizationRegistry
- Private identifier
- Multiply realm
- Module/Async module
- 扩展
- Hash bang 注释
- Native module
- JSON module
- File system functions
- FileState object
- File object
- Directory object
- 完全用C语言实现
- 低占用空间
- 丰富的配置选项
依赖
构建
RATJS 使用 GNU make 作为代码构建工具。 在构建时需要安装以下的库和对应的头文件:
配置选项
显示全部配置选项:
$ make help
在Linux系统中构建
项目配置。
$ make config
生成RATJS链接库和可执行程序。
$ make
安装RATJS连接库和可执行程序。
$ make install
清除构建中间文件。
$ make clean
清除构建目录。
$ make dist-clean
在Windows系统中构建
在Windows系统中构建需要安装MinGW开发环境。
项目配置。
$ make ARCH=win config
生成RATJS链接库和可执行程序。
$ make
安装RATJS连接库和可执行程序。
$ make install
清除构建中间文件。
$ make clean
清除构建目录。
$ make dist-clean
使用
执行javascript
运行可执行程序"ratjs"解释你的javascript脚本。
运行 “js”脚本:
$ ratjs -s your_script.js arguments...
"ratjs"会家在并运行脚本"your_script.js"。如果脚本中定义了函数"main","main"函数将被调用且"arguments"将作为函数的参数被传入。
将"js"脚本作为ECMA262模块运行:
$ ratjs your_module.js arguments
"ratjs"将加载、链接并执行模块"your_module.js"。如果模块中定义了函数"main","main"函数将被调用且"arguments"将作为函数的参数被传入。
将参数字符串作为脚本源码调用"eval()"运行:
$ ratjs -e "script_string"
显示可执行程序"ratjs"的全部选项:
$ ratjs --help
嵌入程序
首先,在你的程序中包含头文件"ratjs.h"。然后通过调用 RATJS API加载并执行javascript脚本。
#include <ratjs.h> ... RJS_Runtime *rt; RJS_Value *source, *script; rt = rjs_runtime_new(); rjs_realm_load_extension(rt, NULL); source = rjs_value_stack_push(rt); script = rjs_value_stack_push(rt); rjs_string_from_enc_chars(rt, source, "print(\"hello, world!\")", -1, NULL); rjs_script_from_string(rt, script, source, NULL, RJS_FALSE); rjs_script_evaluation(rt, script, NULL); rjs_runtime_free(rt);
将你的程序连接库"libratjs"。
$ gcc -o your_program -lratjs -lm your_program_source.c
运行命令"doxygen"生成RATJS的API文档。
你可以参考"demo"目录下的示例程序学习如何将RATJS嵌入你的程序中。
许可证
RATJS采用许可证MIT license发布。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
“根本不需要 TypeScript,JS + JSDoc 够了”,大佬说我想多了
本月,Ruby on Rails 作者 DHH 宣布移除其团队开源项目 Turbo 8 中的 TypeScript 代码。 他认为,TypeScript 对他来说只是阻碍。不仅因为它需要显式的编译步骤,还因为它用类型编程污染了代码,很影响开发体验。 无独有偶,不久前,知名前端 UI 框架 Svelte 也宣布从 TypeScript 切换到 JavaScript。负责 Svelte 编译器的开发者说,改用 JSDoc 后,代码不需要编译构建即可进行调试 —— 简化了编译器的开发工作。 Svelte 不是第一个放弃 TypeScript 的前端框架。早在 2020 年,Deno 就迁移了一部分內部 TypeScript 代码到 JavaScript,以减少构建时间。 Deno 团队给出的理由,总结一下就是:减少构建时间、降低发布的代码体积、减少编写的代码量。 加上今年短期内已经有两个项目从 TypeScript 切换到 JavaScript 了,这个状况就很令人迷惑。难道从 TypeScript 切回 JavaScript 已经成了当下的新潮流?在推特和 GitHub 上,讨论也是纷纷扬...
- 下一篇
凌鲨 0.4.30 版本更新
凌鲨0.4.30版本更新 新增: 工单新增执行阶段属性 改进: 改进看板使用体验
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- 2048小游戏-低调大师作品
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2全家桶,快速入门学习开发网站教程
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,CentOS7官方镜像安装Oracle11G