#nodejs #repl #javascript #interpreter

rusty_nodejs_repl

从 Rust 运行 Node.js Read Eval Print Loop

2 个版本

0.1.1 2024 年 8 月 22 日
0.1.0 2024 年 8 月 22 日

#42#repl

MIT/Apache

14KB
273

Rusty Node.js REPL 🦀 🌳 🌀

$ cargo add rusty_node_repl

用法

将一些 JavaScript 放入字符串,并将其传递给 JsContext::repl。该函数将返回发送到 stdout 的内容。

let mut context = Config::build()?.start()?;
let result = context.repl("console.log('Hello, world!');").await?;
assert_eq!(result, b"Hello, world!\n");

文档。

有关更深入的用法,请参阅 Rust Hypercore Replicator 中的测试 Rust Hypercore Replicator

是什么?

通过 Node.js 从 Rust 运行任意代码的一种方式。

为什么?

这是为了 测试。当在 Node.js 相关的 Rust 项目上工作时,它可以使您将 JavaScript 与 Rust 一起放置。

此 crate 来自于实现 Hypercore JS 生态系统的一部分 Hypercore JS 生态系统,其中我需要测试 Rust 输出与 JavaScript。


lib.rs:

此 crate 允许您从 Rust 中在 Node.js REPL 中运行任意代码。使用 Config 来设置 REPL 并使用 Repl 来与之交互。

let mut context: Repl = Config::build()?.start()?;
let result = context.repl("console.log('Hello, world!');").await?;
assert_eq!(result, b"Hello, world!\n");
context.stop().await?;

REPL 在自己的 tempfile::TempDir 中运行。因此,与它一起创建的任何文件在退出时都会被清理。

依赖关系

~6–17MB
~230K SLoC