fixed-size-multiplexer

    1.0.2 • Public • Published

    Fixed size multiplexer Travis CI

    A tiny library for multiplexing data chunks into blocks of fixed size and vice versa

    This library works in Node and in Browser environments (UMD) and is optimized for very small size.

    How to install

    npm install fixed-size-multiplexer
    

    How to use

    Node.js:

    const {Multiplexer, Demultiplexer} = require('fixed-size-multiplexer')
    // Do stuff

    Browser:

    requirejs(['fixed-size-multiplexer'], function ({Multiplexer, Demultiplexer}) {
        // Do stuff
    })

    API

    Multiplexer(max_data_length : number, block_size : number) : Multiplexer

    Constructor used to create Multiplexer instance.

    • max_data_length - Max size of data in bytes (influences data header size)
    • block_size - Size of one block of data

    Multiplexer.feed(data : Uint8Array)

    Feed chunk of data into multiplexer.

    Multiplexer.have_more_blocks() : boolean

    Returns true if there are some blocks with useful data left.

    Multiplexer.get_block() : Uint8Array

    Get block, potentially with useful data. If no useful data left, will return zeroes (which can be fed into demultiplexer without issues).

    Demultiplexer(max_data_length : number, block_size : number) : Demultiplexer

    Constructor used to create Demultiplexer instance.

    • max_data_length - Max size of data in bytes (influences data header size)
    • block_size - Size of one block of data

    Demultiplexer.feed(block : Uint8Array)

    Feed block, potentially with useful data, into demultiplexer.

    Demultiplexer.have_more_data() : boolean

    Returns true if there are complete chunks with useful data present.

    Demultiplexer.get_data() : null|Uint8Array

    Get chunk of useful data. If no complete chunk of useful data present yet, returns null.

    tests/index.ls contains usage examples.

    Contribution

    Feel free to create issues and send pull requests (for big changes create an issue first and link it from the PR), they are highly appreciated!

    When reading LiveScript code make sure to configure 1 tab to be 4 spaces (GitHub uses 8 by default), otherwise code might be hard to read.

    License

    Free Public License 1.0.0 / Zero Clause BSD License

    https://opensource.org/licenses/FPL-1.0.0

    https://tldrlegal.com/license/bsd-0-clause-license

    Install

    npm i fixed-size-multiplexer

    DownloadsWeekly Downloads

    7

    Version

    1.0.2

    License

    0BSD

    Unpacked Size

    17.2 kB

    Total Files

    6

    Last publish

    Collaborators

    • nazar-pc