Skip to content
slip.js is a library for encoding and decoding Serial Line Internet Protocol (SLIP) packets.
JavaScript HTML
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
dist
src
tests
.gitignore
.jshintrc
GPL-LICENSE.txt First add of SLIP encoding/decoding library.
Gruntfile.js
MIT-LICENSE.txt
README.md
bower.json
package.json

README.md

slip.js

slip.js is a JavaScript library for encoding and decoding Serial Line Internet Protocol packets. It works in both Node.js and in a web browser.

How Do I Use It?

slip.js provides two pieces of functionality: encoding and decoding messages.

Encoding

Encoding is stateless and synchronous. slip.encode() takes any array-like object containing bytes, such as a Uint8Array, Node.js Buffer, ArrayBuffer, or plain JavaScript Array. It returns a Uint8Array containing the encoded message.

Example

var message = new Uint8Array([99, 97, 116, 33]);
var slipEncoded = slip.encode(message); // Result is [192, 99, 97, 33, 192]

Options

Option Type Description Default value
bufferPadding Number _Optional_. The number of bytes to add to the message's length when initializing the encoder's internal buffer. 4
offset Number _Optional_. An offset index into the data argument to start reading the message from. undefined
byteLength Number _Optional_. The number of bytes of the data argument to read. undefined

Decoding

Decoding is stateful and asynchronous. You need to instantiate a slip.Decoder object, providing a callback that will be invoked whenever a complete message is received. By default, messages are limited to 10 MB in size. You can increase this value by providing a maxBufferSize option to the Decoder constructor, specified in bytes.

To decode a SLIP packet, call decode(). Whenever the slip.Decoder detects the end of an incoming message, it will call its onMessage callback.

Example

var logMessage = function (msg) {
    console.log("A SLIP message was received! Here is it: " + msg);
};

var decoder = new slip.Decoder({
    onMessage: logMessage,
    maxMessageSize: 209715200,
    bufferSize: 2048
});

decoder.decode(packet);
decoder.decode(otherPacket);

Options

Option Type Description Default value
bufferSize Number _Optional_. The initial size of the decoder's internal buffer. It will be resized as necessary. 1024
maxMessageSize Number _Optional_. The maximum size of incoming messages, in bytes. Messages larger than this value will cause the onError callback to be invoked. 10485760 (10 MB)
onMessage Function A callback that will be invoked whenever a complete message is decoded. undefined
onError Function A callback that will be invoked whenever an error occurs. undefined

Events

The onMessage callback's signature is:

Argument Type Description
msg Uint8Array The decoded message, with SLIP characters removed.

The onError callback's signature is:

Argument Type Description
msgBuffer Uint8Array A copy of the internal message buffer.
errorMsg String The error message.

License

slip.js is written by Colin Clark and distributed under the MIT and GPL 3 licenses.

Something went wrong with that request. Please try again.