I have some pretty simple questions.
I have looked on Internet for answers on these questions but I could find any. I'm sorry if this is one of the must know things, but I started with addons recently.
There are four different interfaces for a Node.js addons
node.h (C++) which is no interface at all - in this case you will have to deal with different V8/Node.js versions - which is very hard and cumbersome;worker_threads;napi.h (C) which has an uniform ABI across all versions - meaning that a binary module built for one version will work with all later versions;napi.h that allows you to use NAPI with C++ semantics. It is fully compatible with napi.h and you can mix the two.For a new module, Node Addon API is by far the best choice.
Refering the nodejs doc (https://nodejs.org/dist/latest/docs/api/n-api.html#node-api) : (napi.h) It is independent from the underlying JavaScript runtime (for example, V8) and is maintained as part of Node.js itself.
When you write a node addon using node.h you have to deal with v8 stuff, and your code will be coupled to v8. Using napi.h (or node_api.h the c++ wrapper of napi.h) remove the coupling to v8, so if the node team decide to move to an another javascript backend (they will never do that, but IF they do) then your code still work without any update.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With