xpipe
Use cross-platform IPC paths in node.
Last updated 10 years ago by nodexo .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install xpipe 
SYNC missed versions from official npm registry.

xpipe[1]

Use cross-platform IPC paths in node.

Background

In node - instead of using TCP - you can also take IPC[2] to communicate to services like

  • web servers (NGINX)
  • data structure stores (redis)
  • databases (MongoDB, Cassandra)
  • etc.

or to interconnect node apps, Electron frontends/backends etc.

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...

Installation

npm install xpipe

Usage

const xpipe = require('xpipe');

let prefix = xpipe.prefix;
console.log( `prefix:  ${prefix}` );
/*
  [empty string] on Linux and OS X
  "//./pipe/" on Windows
*/

let ipcPath = xpipe.eq('/tmp/my.sock');
console.log( `ipcPath: ${ipcPath}` );
/*
  "/tmp/my.sock" on Linux and OS X
  "//./pipe/tmp/my.sock" on Windows
*/

When did Windows start accepting forward slash as a path separator?

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:

 

[1]: xpipe stands for xp (cross-platform) IPC path equalizer
[2]: inter-process communication, see https://en.wikipedia.org/wiki/Inter-process_communication
[3]: named pipe file system (in-memory)
[4]: on Windows "/" without a leading drive letter represents the root of the current drive

Current Tags

  • 1.0.5                                ...           latest (10 years ago)

6 Versions

  • 1.0.5                                ...           10 years ago
  • 1.0.4                                ...           10 years ago
  • 1.0.3                                ...           10 years ago
  • 1.0.2                                ...           10 years ago
  • 1.0.1                                ...           10 years ago
  • 1.0.0                                ...           10 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 1
Last Day 0
Last Week 1
Last Month 1
Dependencies (0)
None
Dev Dependencies (0)
None

Copyright 2013 - present © cnpmjs.org | Home |