Skip to content

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

License

Notifications You must be signed in to change notification settings

LastDreamer/electron-ipc-server

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%