named-pipe

    1.0.0 • Public • Published

    node-named-pipe

    Linux named pipes in NodeJS (mkfifo) CircleCI

    npm install named-pipe

    This library creates Linux pipes without the use of a C++ binding and through shell execution.

    Dependencies

    None! your shell needs to support mkfifo though. Try mkfifo --help in a shell and see if you have access to it.

    Cool! what can I do with pipes (a.k.a example code)?

    You can use Linux pipes for a very simple RPC. note that Linux pipes by default will BLOCK if no other process is reading from the other end!.

    In your Node process:

    const path = '/tmp/test';
    await mkfifoPromise(path);
    setInterval(
      appendFileSync.bind(null, path,
        `${new Date().toISOString()}: hello fron Node!\n`
      ),
      1000
    );

    And in a separate shell:

    $ tail -f /tmp/test
    2018-03-11T05:37:16.328Z: hello fron Node!
    2018-03-11T05:37:16.328Z: hello fron Node!
    ...

    Full source code of this example is located in example.js.

    API

    This library provides three variants of mkfifo in NodeJS.

    sync

    Signature:

    const mkfifoSync: (path: string, permission?: number = 644);

    Usage:

    const { mkfifoSync } = require('named-pipe');
    mkfifoSync('/tmp/fifo');

    promise

    const mkfifoPromise: (path: string, permission?: number = 644);

    Usage:

    const { mkfifoPromise } = require('named-pipe');
    await mkfifoPromise('/tmp/fifo').catch(console.error);

    async

    const mkfifo: (path: string, permission?: number = 644, callback: Function);

    Usage:

    const { mkfifo } = require('named-pipe');
    mkfifo('/tmp/fifo', 644, (error) => {
      // 'error' will be non-null if unable to create the pipe
    });

    Install

    npm i named-pipe

    DownloadsWeekly Downloads

    2

    Version

    1.0.0

    License

    MIT

    Unpacked Size

    8.7 kB

    Total Files

    8

    Last publish

    Collaborators

    • sepehr-laal