nodejs / nodejs/node

Offer a C FFI for Node.js embedders

Ouverte
#52,289 19 commentaires 14 réactions 1 personne assignée Voir sur GitHub

@vmoroz y travaille déjà.

Depuis le 25/4/2025.

embedding feature request never-stale node-api
Langage dominant
JavaScript
Étoiles
122k
Forks
37.3k
Merge moyen
4 j 2 h
PR mergées (30 j)
283

Description

What is the problem this feature will solve?

Node.js is prolific throughout the server-side world with many projects wanting to repackage the Node.js runtime and the associated standard library/resolution logic/Node.js-isms to offer it to customers such that they can reuse their existing tooling/dependencies.

Notable examples of this:

  • Rspack
  • Esbuild
  • Parcel
  • Supabase
  • AWS Lambda
  • etc

Currently, Node.js cannot be embedded in languages that only support native libraries with a C FFI (Rust, Dotnet, Go, etc).

This leads project maintainers to look for alternative embeddable runtimes that have incomplete Nodejs support, notably Deno (which is a great project in its own right, but lacks certain features that would necessitate consumers rewriting project code).

What is the feature you are proposing to solve the problem?
  • Expose Node.js embedding capabilities via a C FFI
  • Offer a static library to allow including Node.js within the embedding binary
What alternatives have you considered?
  • Embedding Deno
  • Removing the "Deno" parts of Deno and maintaining a light version with a focus on supporting the Node.js standard library
  • Maintaining a fork of Nodejs with a C FFI

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.