Run .NET and Node.js code in-process on Windows, macOS, and Linux, enabling seamless interoperability between the two ecosystems.
Edge.js is a library that enables .NET and Node.js to run in the same process, allowing developers to call .NET functions from Node.js and Node.js functions from .NET. It solves the problem of integrating .NET components into Node.js applications or using .NET for CPU-intensive tasks while keeping the Node.js event loop non-blocking.
Developers working in Node.js who need to integrate existing .NET libraries, perform CPU-intensive computations using CLR multi-threading, or write native Node.js extensions in C# instead of C/C++.
Edge.js provides a unique, asynchronous in-process interoperability layer that handles complex marshaling and threading issues automatically, enabling seamless integration between Node.js and .NET without the overhead of inter-process communication.
Run .NET and Node.js code in-process on Windows, MacOS, and Linux
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Runs .NET and Node.js in the same process, eliminating inter-process communication overhead and reducing latency for cross-language calls, as emphasized in the README's in-process interop model.
Enables scripting in C#, F#, Python (IronPython), PowerShell, and even T-SQL via extensions, allowing developers to leverage existing .NET libraries and ecosystems directly from Node.js.
Works on Windows, macOS, and Linux with support for .NET Framework, Mono, and .NET Core 3.1 through 9.x, making it versatile for diverse deployment environments.
Seamlessly reconciles threading between single-threaded V8 and multi-threaded CLR, ensuring non-blocking Node.js event loops while handling CPU-intensive work in .NET.
Scripting Node.js from CLR is only supported on Windows with .NET Framework, severely restricting cross-platform use cases where .NET needs to drive Node.js logic.
Requires platform-specific prerequisites like Visual C++ Redistributable on Windows, and on Linux, manual workarounds for Mono bugs (e.g., setting LD_PRELOAD), adding friction to initial configuration.
The README explicitly states Mono is no longer actively supported, with focus shifted to .NET Core, which can break existing setups or deter teams invested in Mono-based workflows.
While in-process, the data marshaling between CLR and V8 introduces latency, and complex object graphs can cause issues like stack overflows if not carefully managed.