abi-stable-node
abi-stable-node copied to clipboard
Add list of non C language bindings to Node.js doc
There are a few non-c language bindings. Would be good to add a list to the Node.js core docs so that people know they can use other languages in addition to C/C++
@NickNaso can you add the ones that you are aware of to this issue?
This is where we think adding would make sense - https://nodejs.org/dist/latest-v18.x/docs/api/n-api.html
Here some Node-API binding of non C language:
- Rust
- napi Deprecated in favor of napi-rs
- napi-rs
- napi-sys
- neon
- nodejs-sys
- Swift
- C#
- Nim
- Zig
- Go
- go-node-api This is only a POC. I used this project to undertand how to solve some problems now I'm working on new module napi-go.
Nick will:
- create new page in abi-stable-node repo which lists the bindings
- PR in a link to that page in the Node.js core API documentation
We discussed on the 7 Oct Node API meeting, is it possible to document a list of other Node API JavaScript engine bindings as well? Documentation pages for:
- Node API bindings for other languages
- Node API bindings for other engines
Here's another project: https://github.com/jasongin/napi-dotnet
It is also experimental and incomplete. Compared to napi-cs
this allows for much simpler and more natural C# code, with automatic exporting of public properties, methods, and classes. I'm not sure I'll spend a lot more time on it unless others find it useful.
We discussed in the 9 Dec Node-API meeting, @NickNaso has created the documentation on this repo and will create the PR on Node core linking to it next week.
@NickNaso is working to describe how it's possible for these wrappers/integrations to work based on c calling convention etc. This will helps others create new wrappers but is also more work and will take more time.
@NickNaso would it be worthwhile to close this issue and create a new one for documenting how to create a new wrapper? I think the scope of this issue is different.
@KevinEady yes I'm closing the issue and will open new one about how to create a wrapper.