/electron-ipc-server

An IPC server with an API similar to Express.js' for Electron

Primary LanguageJavaScriptMIT LicenseMIT

electron-ipc-server

NPM

An IPC server with an API similar to Express' for Electron.

Handling IPC messages in Electron can be a pain if you are building an app with a very active communication between processes. Instead of reinventing the wheel electron-ipc-server aims to reduce the learning curve by reimplementing well known patterns such as those used for routing in Express on the server side and a fetch*-ish* API on the client side. Internally it' still using ipcRenderer and ipcMain so there's nothing magic going on.

Quick example

// In main process
const server = require('electron-ipc-server').createServer(app)

server.get('/users', (req, res) =>
{
    let users = // you get the users from your backend
    res.status(200).send(users)
})
// In render process
const client = require('electron-ipc-server').createClient()

client.get('/users')
.then(response =>
{
    console.log(`users`, response.body)
    // now go and do something with your list of users!
})

Installation

npm i electron-ipc-server --save

Features

What the client (renderer process) can do

  • Send requests to the main process and handle responses using Promises.
  • Use regular HTTP verbs like GET, POST, PUT and DELETE.
  • Still use regular events with client.on().

What the server (main process) can do

  • Respond to regular HTTP verbs like GET, POST, PUT and DELETE.
  • Use an API similar to what Express offers, with middleware, params, query-strings, and much more.
  • Broadcast messages (by definition, to all clients).

Documentation

TODO

  • Add guides to /docs
  • Add /examples

License

MIT