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.
// In main processconst server =server
// In render processconst client =client
npm i electron-ipc-server --save
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
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).
- Add guides to /docs
- Add /examples