71个版本 (1个稳定版)

1.1.0-alpha.02024年5月31日
1.0.0 2024年2月23日
1.0.0-alpha.42023年4月14日
1.0.0-alpha.22022年11月11日
0.1.1 2015年12月28日

#12 in 异步

Download history 52309/week @ 2024-05-03 48341/week @ 2024-05-10 58008/week @ 2024-05-17 51171/week @ 2024-05-24 112583/week @ 2024-05-31 116166/week @ 2024-06-07 99456/week @ 2024-06-14 153696/week @ 2024-06-21 135285/week @ 2024-06-28 106915/week @ 2024-07-05 117499/week @ 2024-07-12 107961/week @ 2024-07-19 114450/week @ 2024-07-26 102794/week @ 2024-08-02 82979/week @ 2024-08-09 68468/week @ 2024-08-16

每月391,492次下载
64 个crate(60个直接使用) 中使用

MIT/Apache

405KB
7.5K SLoC

neon

Cargo Test Status Lint Status

Rust绑定,用于编写安全且快速的Node.js原生插件。

入门

安装好 平台依赖 后,入门非常简单

$ npm init neon my-project

然后查看 Hello World指南,了解如何在Neon中编写第一个Hello World!

文档

查看我们的 Neon基础文档 和我们的 API文档

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

许可证

根据您的选择,受以下许可证之一许可:

依赖项

~0.5–7.5MB
~56K SLoC