30.0.1 • Published 14 days ago

electron-edge-js v30.0.1

Weekly downloads
492
License
MIT
Repository
github
Last release
14 days ago

.NET and Node.js in-process on Electron

This is a fork of edge-js adapted to support Electron.

Windows binaries pre-compiled for

ElectronNode.Js Version
Electron 19.xv16.14.2
Electron 20.xv16.15.0
Electron 21.xv16.16.0
Electron 22.xv16.17.1
Electron 23.xv18.12.1
Electron 24.xv18.14.0
Electron 25.xv18.15.0
Electron 26.xv18.16.1
Electron 27.xv18.17.1
Electron 28.xv18.18.2
Electron 29.xv20.9.0
Electron 30.xv20.11.1
  • You do not need to use same version of Node.js in your project as Electron Node.js version
  • On Linux and MacOS npm install will compile binaries with correct Node.Js headers for a given Electron version.

Usage is the same as edge-js, replace 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();
    }
*/});

Migration to .NET 6 :exclamation:

Edge.Js C# code has been migrated to .NET 6.
If your project is referencing EdgeJs.dll file locations have changed.

node_modules/electron-edge-js/lib/bootstrap/bin/Release/net6.0/EdgeJs.dll

Requirements (Windows)

You must install Microsoft Visual C++ Redistributable (x86)

Why use electron-edge-js?

Electron is built using specific version of Node.js. In order to use edge-js in Electron project you would need to recompile it using the same Node.js version and Electron headers.

electron-edge-js comes precompiled with correct Node.js versions and headers.

Quick start

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

MacOS

edge-js and electron-edge-js will fail to build on MacOS if Visual Studio for Mac is installed. VS installs Mono runtimes that edge-js fails to access during nmp install. Removing VS does not remove Mono fully and leaves behind an incomplete Mono install. To remove Mono from macOS use this script

sudo rm -rf /Library/Frameworks/Mono.framework
sudo pkgutil --forget com.xamarin.mono-MDK.pkg
sudo rm /etc/paths.d/mono-commands

Packaging Electron application

'electron-edge-js' needs to be specified as external module, some examples
webpack.config.js

     externals: {
    'electron-edge-js': 'commonjs2 electron-edge-js',
    },
    node: {
        __dirname: false,
        __filename: false,
    },

vue.config.js

    module.export = {
        pluginOptions: {
            electronBuilder: {
            externals:["electron-edge-js"]
        }
    }

Packaging example based on electron-edge-js-quick-start.
https://github.com/zenb/electron-edge-js-quick-start

Related issues to use for troubleshooting:
https://github.com/agracio/electron-edge-js/issues/138
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

Async execution

Underlying 'edge' component is written as synchronous C++ Node.js module and will cause Electron app to freeze when executing long running .NET code.
For workaround refer to this issue: https://github.com/agracio/electron-edge-js/issues/97

Documentation

For full documentation see edge-js repo.

Build

Build.bat supports only Electron major versions.

30.0.1

14 days ago

30.0.0

14 days ago

29.0.2

1 month ago

29.0.1

2 months ago

29.0.0

2 months ago

28.0.1

4 months ago

28.0.0

4 months ago

26.0.0

5 months ago

23.0.0

1 year ago

22.0.1

1 year ago

22.0.0

1 year ago

19.0.0

2 years ago

18.0.1

2 years ago

18.0.0

2 years ago

17.0.0

2 years ago

14.16.1

3 years ago

14.16.0

3 years ago

12.18.5

3 years ago

12.18.4

3 years ago

12.18.3

3 years ago

12.16.3

4 years ago

12.14.2

4 years ago

12.14.1

4 years ago

12.13.0

4 years ago

12.8.1

4 years ago

12.4.1

5 years ago

12.4.0

5 years ago

12.0.1

5 years ago

12.0.0

5 years ago

10.11.1

5 years ago

10.11.0

5 years ago

8.3.8

6 years ago

8.3.7

6 years ago

8.3.6

6 years ago

8.3.5

6 years ago

8.3.4

6 years ago

8.3.3

6 years ago

8.3.2

6 years ago

8.3.1

6 years ago

8.3.0

6 years ago

8.2.9

7 years ago

8.2.8

7 years ago

8.2.7

7 years ago

8.2.6

7 years ago

8.2.5

7 years ago

8.2.4

7 years ago

8.2.3

7 years ago

8.2.2

7 years ago