#ffi #node #nodejs #napi #n-api

sys nodejs-sys

Native bindings to the nodejs’ n-api

12 breaking releases

0.13.0 Mar 27, 2021
0.11.0 Oct 29, 2020
0.4.1 Jul 11, 2020
0.2.0 Sep 5, 2019
0.1.1 May 6, 2019

#7 in #n-api

Download history 573/week @ 2022-06-06 114/week @ 2022-06-13 63/week @ 2022-06-20 159/week @ 2022-06-27 253/week @ 2022-07-04 157/week @ 2022-07-11 293/week @ 2022-07-18 83/week @ 2022-07-25 138/week @ 2022-08-01 50/week @ 2022-08-08 30/week @ 2022-08-15 252/week @ 2022-08-22 21/week @ 2022-08-29 37/week @ 2022-09-05 258/week @ 2022-09-12 109/week @ 2022-09-19

466 downloads per month
Used in neon-runtime

MIT license

9KB
55 lines

Rust build crates.io badge docs.rs badge

nodejs-sys

Bindings for NodeJS' N-API.

Requirements

This crate needs llvm at build-time, since it generates bindings at build-time (by using bindgen).

For Debian/Ubuntu that's a simple apt install llvm libclang-dev.

Features

Different API versions may be selected via feature-flag. See the N-API Version Matrix for details.

  • napi_v5 supported by all actively maintained NodeJS releases
  • napi_v6 supported by all actively maintained NodeJS releases
  • napi_v7 supported by all actively maintained NodeJS releases
  • napi_v8 requires at least 15.12.0, this is the default (if no flag is given)
  • the experimental N-API features may be enabled via feature flag experimental (off by default)

Updates

Not all NodeJS Versions change the N-API, so nodejs-sys gets an update only if the relevant headers have been changed between node versions.

See the (autogenerated) changelog for links to detailed upstream commits.

Usage

This crate is very low-level. See neon, they provide N-API Support.

But of course you may also use this crate directly, LogRocket has a nice blog post: Rust and Node.js: A match made in heaven.

No runtime deps

~0–1.4MB
~30K SLoC