71个版本 (1个稳定版)
1.1.0-alpha.0 | 2024年5月31日 |
---|---|
1.0.0 | 2024年2月23日 |
1.0.0-alpha.4 | 2023年4月14日 |
1.0.0-alpha.2 | 2022年11月11日 |
0.1.1 | 2015年12月28日 |
#12 in 异步
每月391,492次下载
在 64 个crate(60个直接使用) 中使用
405KB
7.5K SLoC
Rust绑定,用于编写安全且快速的Node.js原生插件。
入门
安装好 平台依赖 后,入门非常简单
$ npm init neon my-project
然后查看 Hello World指南,了解如何在Neon中编写第一个Hello World!
文档
Neon 1.0.0迁移指南
Neon最新版本1.0.0包含了一些破坏性变更,以修复不稳定性、提高一致性和添加新功能。
阅读新的 迁移指南,了解如何将Neon项目迁移到1.0.0!
平台支持
操作系统
Linux | macOS | Windows |
---|---|---|
✓ | ✓ | ✓ |
Node.js
Node 18 | Node 20 | Node 21 |
---|---|---|
✓ | ✓ | ✓ |
预期支持 Node LTS版本 和当前版本。如果您使用的是其他版本的Node,并认为它应该被支持,请告知我们。
Bun(实验性)
Bun 是一个旨在兼容Node的替代JavaScript运行时。在许多情况下,Neon模块可以在Bun中运行;然而,在撰写本文时,一些Node-API函数尚未实现。
Rust
Neon支持Rust稳定版1.65及以上版本。我们在最新的稳定、beta和nightly版本上进行测试。
尝一尝...
fn make_an_array(mut cx: FunctionContext) -> JsResult<JsArray> {
// Create some values:
let n = cx.number(9000);
let s = cx.string("hello");
let b = cx.boolean(true);
// Create a new array:
let array = cx.empty_array();
// Push the values into the array:
array.set(&mut cx, 0, n)?;
array.set(&mut cx, 1, s)?;
array.set(&mut cx, 2, b)?;
// Return the array:
Ok(array)
}
#[neon::main]
fn main(mut cx: ModuleContext) -> NeonResult<()> {
cx.export_function("make_an_array", make_an_array)?;
Ok(())
}
参与其中
Neon社区刚刚起步,有很多乐趣可以享受。来玩吧! :)
Neon社区Slack对所有用户开放;请使用此邀请链接获取邀请。
测试Neon
Neon项目既是一个NPM工作空间,也是一个Cargo工作空间。可以通过安装和测试NPM工作空间来执行完整的测试套件。
npm install
npm test
可以使用npm
工作空间命令测试单个JavaScript包
npm --workspace=create-neon test
可以使用cargo
工作空间命令测试单个Rustcrate
cargo test -p neon-build
许可证
根据您的选择,受以下许可证之一许可:
- Apache许可证2.0(LICENSE-APACHE或https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT或http://opensource.org/licenses/MIT)
。
依赖项
~0.5–7.5MB
~56K SLoC