
Security News
Deno 2.6 + Socket: Supply Chain Defense In Your CLI
Deno 2.6 introduces deno audit with a new --socket flag that plugs directly into Socket to bring supply chain security checks into the Deno CLI.
electron-edge-js
Advanced tools
This is a fork of edge-js adapted to support Electron
electron-edge-js allows you to run .NET code in Electron process on Windows, macOS, and Linux.
Call compiled .NET dlls or inline C# code directly from Electron process.
electron-edge-js binaries will be compiled during npm install using node-gyp.electron-edge-js binaries during npm install using node-gyp.nan module compatibility issues versions prior to Electron 29 are not supported.| Electron | x86/x64 | arm64 |
|---|---|---|
| 34.x - 39.x | :heavy_check_mark: | :heavy_check_mark: |
| Electron | x64 | arm64 |
|---|---|---|
| 34.x - 39.x | :heavy_check_mark: | :heavy_check_mark: |
| Electron | x64 | arm64 |
|---|---|---|
| 29.x - 39.x | :heavy_check_mark: | :heavy_check_mark: |
On Linux npm install will compile binaries with correct Electron headers for a given Electron version.
| Electron | x64 | arm64 |
|---|---|---|
| 29.x - 39.x | :heavy_check_mark: | :heavy_check_mark: |
Other Linux architectures might work but have not been tested.
require('edge-js') with require('electron-edge-js'):npm install electron-edge-js
-var edge = require('edge-js');
+var edge = require('electron-edge-js');
var helloWorld = edge.func(function () {/*
async (input) => {
return ".NET Welcomes " + input.ToString();
}
*/});
Sample app that shows how to work with .NET Core using inline code and compiled C# libraries.
https://github.com/agracio/electron-edge-js-quick-start
electron-edge-js needs to be specified as an external module, some examples
webpack.config.js
module.exports = {
target: 'node',
externals: {
'electron-edge-js': 'commonjs2 electron-edge-js',
'edge-cs': 'commonjs2 edge-cs',
},
node: {
__dirname: true,
__filename: true,
},
}
webpack.config.js
externals: {
'electron-edge-js': 'commonjs2 electron-edge-js',
},
node: {
__dirname: false,
__filename: false,
},
extraResources:[
"./node_modules/electron-edge-js/**",
]
Electron main.js
// https://github.com/ScottJMarshall/electron-webpack-module-resolution
require("module").globalPaths.push(process.cwd()+'/node_modules');
var edge = require('electron-edge-js');
vue.config.js
module.export = {
pluginOptions: {
electronBuilder: {
externals:["electron-edge-js"]
}
}
}
When using dotnet Core CLR environment variable process.env.EDGE_USE_CORECLR needs to be set in Vite config instead of code.
vite.config.ts
export default defineConfig(({ command }) => {
process.env.EDGE_USE_CORECLR = 1;
return {
// ..
}
});
Related issues to use for troubleshooting:
https://github.com/agracio/electron-edge-js/issues/39
https://github.com/agracio/electron-edge-js/issues/74
https://github.com/agracio/electron-edge-js/issues/21
https://github.com/agracio/electron-edge-js/issues/138
electron-builder example based on electron-edge-js-quick-start
https://github.com/agracio/electron-edge-js-quick-start-builder
electron-forge example based on electron-edge-js-quick-start
https://github.com/agracio/electron-edge-js-quick-start-forge
If electron-edge-js module is used on main Electron thread it will cause Electron app to freeze when executing long-running .NET code even if your C# code is fully async.
To avoid this you can use worker thread packages such as threads.js or piscina
This issue is not present when using Electron IPC
main.js
const { fork } = require("child_process"); fork("../child.js", [], { env: {file: 'filename'}, })
child.js
const path = require('path');
const powerpoint = require('office-script').powerpoint;
const filePath = '../../directory/';
powerpoint.open(path.join(${remotePath}${process.env.file}.pptx), function(err) {
if(err) throw err;
});
If electron-edge-js module is used on main Electron thread refreshing the window (F5, Ctrl+R, Command+R etc) will cause a hard crash in electron-edge-js module and Electron app.
Currently there is no solution to this issue other than using Electron IPC.
For full documentation see edge-js repo.
FAQs
Edge.js: run .NET and Node.js in-process on Electron
The npm package electron-edge-js receives a total of 1,150 weekly downloads. As such, electron-edge-js popularity was classified as popular.
We found that electron-edge-js demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Deno 2.6 introduces deno audit with a new --socket flag that plugs directly into Socket to bring supply chain security checks into the Deno CLI.

Security News
New DoS and source code exposure bugs in React Server Components and Next.js: what’s affected and how to update safely.

Security News
Socket CEO Feross Aboukhadijeh joins Software Engineering Daily to discuss modern software supply chain attacks and rising AI-driven security risks.