Use cross-platform IPC paths in Node.js.
npm install xpipeUse cross-platform IPC paths in Node.js.
In Node.js - instead of using TCP - you also can take IPC[^2] to communicate to services like
- web servers (NGINX, Caddy)
- databases (redis, PostgreSQL, MongoDB)
- etc.
or to interconnect Node.js apps, Electron frontends/backends and so on.
This can lead to large speed gains.
On unixoid operating systems - e.g. Linux and OS X - we use Unix domain sockets
that are referred by file descriptors.
Windows has named pipes for it, living
in the root directory of the NPFS[^3], mounted under the special path \\\\.\\pipe\\.
To mitigate these differences and to to support writing portable code, xpipe was born...
npm install xpipe
``javascript`
// CommonJS (CJS) require
const xpipe = require('xpipe');
`javascript`
// ECMAScript Modules (ESM) import
import xpipe from 'xpipe';
`javascriptprefix: ${prefix}
let prefix = xpipe.prefix;
console.log();
// [empty string] on Linux and macOS
// "//./pipe/" on Windows
`
`javascriptipcPath: ${ipcPath}
let ipcPath = xpipe.eq('/tmp/my.sock');
console.log();
// Returns a cross-platform IPC path:
// "/tmp/my.sock" on Linux and OS X
// "//./pipe/tmp/my.sock" on Windows
``
Every Windows API/kernel ever has accepted "/" as a path separator.
So has every version of MS-DOS beginning with DOS 2.0 (the first version
to support subdirectories).
It's only been in command lines that "/" was not allowed when it had
already been used as a switch delimiter in MS-DOS 1.0 (introduced by IBM).
This behaviour could be bypassed (at least on modern Windows systems) by including
the path in double quotation marks:
- cd c:/Windows and cd /Windows work[^4]
- dir ./ /B fails but dir "./" /B works
Further articles:
- https://en.m.wikipedia.org/wiki/Path_(computing)