{ "_args": [ [ { "raw": "xpipe@^1.0.5", "scope": null, "escapedName": "xpipe", "name": "xpipe", "rawSpec": "^1.0.5", "spec": ">=1.0.5 <2.0.0", "type": "range" }, "/home/jdaugherty/work/GT2/GT2-Android/node_modules/metro" ] ], "_from": "xpipe@>=1.0.5 <2.0.0", "_id": "xpipe@1.0.5", "_inCache": true, "_location": "/xpipe", "_nodeVersion": "6.3.1", "_npmOperationalInternal": { "host": "packages-12-west.internal.npmjs.com", "tmp": "tmp/xpipe-1.0.5.tgz_1473099113821_0.5368920692708343" }, "_npmUser": { "name": "nodexo", "email": "mk@nodexo.de" }, "_npmVersion": "3.10.3", "_phantomChildren": {}, "_requested": { "raw": "xpipe@^1.0.5", "scope": null, "escapedName": "xpipe", "name": "xpipe", "rawSpec": "^1.0.5", "spec": ">=1.0.5 <2.0.0", "type": "range" }, "_requiredBy": [ "/metro" ], "_resolved": "https://registry.npmjs.org/xpipe/-/xpipe-1.0.5.tgz", "_shasum": "8dd8bf45fc3f7f55f0e054b878f43a62614dafdf", "_shrinkwrap": null, "_spec": "xpipe@^1.0.5", "_where": "/home/jdaugherty/work/GT2/GT2-Android/node_modules/metro", "author": { "name": "Michael Kortstiege" }, "bugs": { "url": "https://github.com/nodexo/xpipe/issues" }, "dependencies": {}, "description": "Use cross-platform IPC paths in node.", "devDependencies": {}, "directories": {}, "dist": { "shasum": "8dd8bf45fc3f7f55f0e054b878f43a62614dafdf", "tarball": "https://registry.npmjs.org/xpipe/-/xpipe-1.0.5.tgz" }, "gitHead": "8cc87189946b94cacb057f33a55c50eeb4906289", "homepage": "https://github.com/nodexo/xpipe#readme", "keywords": [ "ipc", "path", "cross platform", "unix", "sockets", "windows", "named pipes" ], "license": "MIT", "main": "index.js", "maintainers": [ { "name": "nodexo", "email": "mk@nodexo.de" } ], "name": "xpipe", "optionalDependencies": {}, "readme": "\nxpipe[1]\n===================\n\nUse cross-platform IPC paths in node.\n\nBackground\n----------\n\nIn node - instead of using TCP - you can also take IPC[2] to communicate to services like\n\n- web servers (NGINX)\n- data structure stores (redis)\n- databases (MongoDB, Cassandra)\n- etc.\n\nor to interconnect node apps, Electron frontends/backends etc. \n\n**This can lead to large speed gains.**\n\nOn unixoid operating systems - e.g. Linux and OS X - we use [Unix domain sockets](https://en.wikipedia.org/wiki/Unix_domain_socket) \nthat are referred by file descriptors. \nWindows has [named pipes](https://en.wikipedia.org/wiki/Named_pipe) for it, living \nin the root directory of the NPFS[3], mounted under the special path \\\\\\\\.\\\\pipe\\\\.\n\n**To mitigate these differences and to to support writing portable code, xpipe was born...**\n\nInstallation\n------------\n\n npm install xpipe\n\n\nUsage\n-----\n\n```javascript\nconst xpipe = require('xpipe');\n\nlet prefix = xpipe.prefix;\nconsole.log( `prefix: ${prefix}` );\n/*\n [empty string] on Linux and OS X\n \"//./pipe/\" on Windows\n*/\n\nlet ipcPath = xpipe.eq('/tmp/my.sock');\nconsole.log( `ipcPath: ${ipcPath}` );\n/*\n \"/tmp/my.sock\" on Linux and OS X\n \"//./pipe/tmp/my.sock\" on Windows\n*/\n```\n\nWhen did Windows start accepting forward slash as a path separator?\n-------------------------------------------------------------------\n\nEvery Windows API/kernel ever has accepted \"/\" as a path separator.\nSo has every version of MS-DOS beginning with DOS 2.0 (the first version \nto support subdirectories).\n\nIt's only been in command lines that \"/\" was not allowed when it had\nalready been used as a switch delimiter in MS-DOS 1.0 (introduced by IBM).\n\nThis behaviour could be bypassed (at least on modern Windows systems) by including \nthe path in double quotation marks:\n- **cd c:/Windows** and **cd /Windows** work[4]\n- **dir ./ /B** fails but **dir \"./\" /B** works\n\nFurther articles: \n- https://en.m.wikipedia.org/wiki/Path_(computing)\n\n

 

\n \n[1]: xpipe stands for **xp (cross-platform) IPC path equalizer** \n[2]: inter-process communication, see https://en.wikipedia.org/wiki/Inter-process_communication \n[3]: named pipe file system (in-memory) \n[4]: on Windows \"/\" without a leading drive letter represents the root of the current drive \n", "readmeFilename": "README.md", "repository": { "type": "git", "url": "git+https://github.com/nodexo/xpipe.git" }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "version": "1.0.5" }