95个重大版本

0.96.0 2024年8月22日
0.94.0 2024年7月31日
0.73.0 2024年3月28日
0.59.0 2023年12月21日
0.9.0 2022年11月24日

1199 in 进程宏

Download history 340/week @ 2024-05-02 443/week @ 2024-05-09 527/week @ 2024-05-16 184/week @ 2024-05-23 380/week @ 2024-05-30 353/week @ 2024-06-06 616/week @ 2024-06-13 243/week @ 2024-06-20 89/week @ 2024-06-27 112/week @ 2024-07-04 476/week @ 2024-07-11 284/week @ 2024-07-18 616/week @ 2024-07-25 360/week @ 2024-08-01 164/week @ 2024-08-08 55/week @ 2024-08-15

1,254 monthly downloads
6 个crate中使用 (直接使用5个)

MIT 许可

4KB

napi_sym

用于Deno的Node-API实现的进程宏。它执行以下操作

  • 将符号标记为 #[no_mangle] 并将其重写为 pub extern "C" $name
  • 断言函数符号存在于 symbol_exports.json
  • deno_napi::Result 映射到原始 napi_result
use deno_napi::napi_value;
use deno_napi::Env;
use deno_napi::Error;
use deno_napi::Result;

#[napi_sym::napi_sym]
fn napi_get_boolean(
  env: *mut Env,
  value: bool,
  result: *mut napi_value,
) -> Result {
  let _env: &mut Env = env.as_mut().ok_or(Error::InvalidArg)?;
  // *result = ...
  Ok(())
}

symbol_exports.json

一个包含需要在链接时放入可执行文件动态符号表的符号的文件。

这通过在Windows上使用 /DEF:,在macOS上使用 -exported_symbol,_,在Linux上使用 --export-dynamic-symbol= 来完成。见 cli/build.rs

在Windows上,您需要运行 tools/napi/generate_symbols_lists.js 来生成 .def 文件。

依赖

~0.7–1.6MB
~36K SLoC