You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

xpipe

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

xpipe - npm Package Compare versions

Comparing version

to
1.0.7

39

index.js

@@ -1,2 +0,1 @@

'use strict';

@@ -9,25 +8,23 @@

class Xpipe {
/**
* Return a cross-platform IPC path
* @return {string}
*/
static eq(path) {
const prefix = Xpipe.prefix;
if (prefix.endsWith('/') && path.startsWith('/')) {
return prefix + path.substring(1);
}
return prefix + path;
}
/**
* Return a cross-platform IPC path
* @return {string}
*/
static eq(path) {
const prefix = Xpipe.prefix;
if (prefix.endsWith('/') && path.startsWith('/')) {
return prefix + path.substr(1);
}
return prefix + path;
}
/**
* Returns the prefix on Windows and empty string otherwise
* @return {string}
*/
static get prefix() {
return process.platform === 'win32' ? '//./pipe/' : '';
}
/**
* Returns the prefix on Windows and empty string otherwise
* @return {string}
*/
static get prefix() {
return process.platform === 'win32' ? '//./pipe/' : '';
}
}
module.exports = Xpipe;
{
"name": "xpipe",
"version": "1.0.6",
"description": "Use cross-platform IPC paths in node.js.",
"version": "1.0.7",
"description": "Use cross-platform IPC paths in Node.js.",
"main": "index.js",

@@ -6,0 +6,0 @@ "scripts": {

@@ -0,60 +1,66 @@

# xpipe<sup>[^1]</sup>
xpipe<sup>[1]</sup>
===================
Use cross-platform IPC paths in Node.js.
Use cross-platform IPC paths in node.
## Background
Background
----------
In Node.js - instead of using TCP - you also can take IPC<sup>[^2]</sup> to communicate to services like
In node - instead of using TCP - you can also take IPC<sup>[2]</sup> to communicate to services like
- web servers (NGINX)
- data structure stores (redis)
- databases (MongoDB, Cassandra)
- web servers (NGINX, Caddy)
- databases (redis, PostgreSQL, MongoDB)
- etc.
or to interconnect node apps, Electron frontends/backends 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](https://en.wikipedia.org/wiki/Unix_domain_socket)
that are referred by file descriptors.
Windows has [named pipes](https://en.wikipedia.org/wiki/Named_pipe) for it, living
in the root directory of the NPFS<sup>[3]</sup>, mounted under the special path \\\\.\\pipe\\.
On unixoid operating systems - e.g. Linux and OS X - we use [Unix domain sockets](https://en.wikipedia.org/wiki/Unix_domain_socket)
that are referred by file descriptors.
Windows has [named pipes](https://en.wikipedia.org/wiki/Named_pipe) for it, living
in the root directory of the NPFS<sup>[^3]</sup>, mounted under the special path \\\\.\\pipe\\.
**To mitigate these differences and to to support writing portable code, xpipe was born...**
Installation
------------
## Installation
npm install xpipe
## Usage
Usage
-----
```javascript
// CommonJS (CJS) require
const xpipe = require('xpipe');
```
```javascript
// ECMAScript Modules (ESM) import
import xpipe from 'xpipe';
```
### xpipe.prefix
```javascript
let prefix = xpipe.prefix;
console.log( `prefix: ${prefix}` );
/*
[empty string] on Linux and OS X
"//./pipe/" on Windows
*/
console.log(`prefix: ${prefix}`);
// [empty string] on Linux and macOS
// "//./pipe/" on Windows
```
### xpipe.eq
```javascript
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
*/
console.log(`ipcPath: ${ipcPath}`);
// Returns a cross-platform IPC path:
// "/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?
-------------------------------------------------------------------
## 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
So has every version of MS-DOS beginning with DOS 2.0 (the first version
to support subdirectories).

@@ -65,8 +71,10 @@

This behaviour could be bypassed (at least on modern Windows systems) by including
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<sup>[4]</sup>
- **cd c:/Windows** and **cd /Windows** work<sup>[^4]</sup>
- **dir ./ /B** fails but **dir "./" /B** works
Further articles:
Further articles:
- https://en.m.wikipedia.org/wiki/Path_(computing)

@@ -76,5 +84,5 @@

[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
[^1]: xpipe stands for **xp (cross-platform) IPC path equalizer**
[^2]: inter-process communication, see [https://en.wikipedia.org/wiki/Inter-process_communication](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

Sorry, the diff of this file is not supported yet