Oh my, yes! We have some legacy microservices written in Swift/Vapor (while our main stack is NestJS) and instead of rewriting them to TypeScript, we can use this. Cool!
Actually, we are using Node/Nest from the start. A significant amount of our business logic was written in Swift for our iOS mobile app, which we eventually moved to the microservices (Vapor). This was because we needed to create an Android app and didn't want to write new code from scratch.
It's a desktop thing too when working with cli tools or electron, though I've found that for electron I just end up calling other languages via IPC on stdin/out. It might not be as fast as ffi from node, but its certainly leagues easier and clearer.
NodeJS has had FFI for over a decade that allows you to call functions in .dylib/.a/.dll on Mac/Linux/Windows. I've used it extensively to link with libraries provided by USB device manufacturers to avoid direct USB interfacing.
You wouldn't run this in the browser. On the frontend, this would be useful for Electron apps (which run an embedded Chromium for the UI and a local node server for business logic and interfacing with the operating system) on MacOS. On the backend, this might be useful if you have a node-based API and want to share some Swift code between your iOS frontend and node backend.
I get paid to write Swift code at the day job, at night I write a lot of node backend code for a side project. I have to say that it's pretty refreshing to jump in and not have the (increasingly) opinionated Swift compiler barking at me for everything I do. Unfortunately Swift has also made me extremely paranoid in JS, where I find that everything I write is checked for null, but I don't think I'd trade the freedom in nodeJS for Swift's type safety. This is super cool though, well done.
So, the main use case of this is for writing Electron apps, the biggest benefit of Electron is having cross-platform apps, using swift code in your Electron app that's only work on macOS gonna defeat of propose of an Electron app.
Nope! It's entirely unremarkable on Linux (in a good way: you wouldn't notice that it's not its "native" platform), and it's surprisingly pleasant to use (and probably the easiest way to get a good C compiler) on Windows.
reply