Avec Node.js il est aussi possible de créer des interfaces (addons) bas niveau pour par exemple exécuter des librairies écrites en C, C++.
Cela peut amener un avantage en matière de performance (mais ce n’est pas forcément tout le temps l’objectif.. passer de C++ à JavaScript a un coup non négligeable). Quelquefois c’est aussi tout simplement car les librairies C/C++ sont déjà très complètes et maintenues (ce serait potentiellement une perte de temps de tout ré implémenter en JavaScript).
Quelques exemples de packages NPM étant des addons natif :
D’ailleurs pour installer ces packages, il vous est bien souvent nécessaire d’installer diverses dépendances pour être en capacité de les compiler. Je vous invite à consulter la section installation de Node-gyp si vous n’étiez pas au courant de cela. (Il y a aussi une option à l’installation de Node.js sur Windows).
Si c’est un sujet qui vous intéresse j’ai moi-même fait un talk en 2019 pour vulgariser et expliquer mes premiers pas en création d’addons natif pour mon projet SlimIO.
Voici néanmoins une liste complémentaire de ressources :
- EN Node-addon-api (Pour ceux qui veulent écrire du code en C++).
- EN Node-gyp (C’est l’outil qui va vous servir à compiler votre addon).
- EN Node.js addons examples
- EN Prebuildify (Pour la création de prebuilds)
Documentation et outil GYP :
Talks sur la native API de Node.js :
- EN N-API - Next Generation Node API for Native Modules
- EN N-API: The Next Generation Node.js API is Ready!
- EN Next Generation N-API: A Hands-on Workshop
- EN N-API on JerryScript
Bonus:
Divers liens pour faire des addons natif avec Rust plutôt que C et C++ :
- Node.js N-API for Rust.
- NAPI-RS
- EN Supercharge Your Node.js With Rust
- EN Heavy computation in Node.js with Rust - Jean Burellier