Skip to main content

Stable Version Hatch project Code style: black Imports: isort Checked with mypy tests Coverage StatusDocumentation Status

sliplib — A module for the SLIP protocol

The sliplib module implements the encoding and decoding functionality for SLIP packets, as described in RFC 1055. It defines encoding, decoding, and validation functions, as well as a driver class that can be used to implement a SLIP protocol stack, and higher-level classes that apply the SLIP protocol to TCP connections or IO streams. Read the documentation for detailed information.

Background

The SLIP protocol is described in RFC 1055 (A Nonstandard for Transmission of IP Datagrams over Serial Lines: SLIP, J. Romkey, June 1988). The original purpose of the protocol is to provide a mechanism to indicate the boundaries of IP packets, in particular when the IP packets are sent over a connection that does not provide a framing mechanism, such as serial lines or dial-up connections.

There is, however, nothing specific to IP in the SLIP protocol. SLIP offers a generic framing method that can be used for any type of data that must be transmitted over a (continuous) byte stream. In fact, the main reason for creating this module was the need to communicate with a third-party application that used SLIP over TCP (which is a continuous byte stream) to frame variable length data structures.

Usage

Installation

To install the sliplib module, use

pip install sliplib

Low-level usage

The recommended basic usage is to run all encoding and decoding operations through an instantiation driver of the Driver class, in combination with the appropriate I/O code. The Driver class itself works without any I/O, and can therefore be used with any networking code, or any bytestream like pipes, serial I/O, etc. It can work in synchronous as well as in asynchronous environments.

High-level usage

The sliplib package also provides a SlipWrapper abstract baseclass that provides the methods send_msg and recv_msg to send and receive single SLIP-encoded messages. This base class wraps an instance of the Driver class with a user-provided stream.

Two concrete subclasses of SlipWrapper are provided:

  • SlipStream allows the wrapping of a byte IO stream.
  • SlipSocket allows the wrapping of a TCP socket.

In addition, the module also provides a SlipRequestHandler to facilitate the creation of TCP servers that can handle SLIP-encoded messages.

Error Handling

Contrary to the reference implementation described in RFC 1055, which chooses to essentially ignore protocol errors, the functions and classes in the sliplib module raise a ProtocolError exception when handling a SLIP packet with invalid contents.

Release files for sliplib 0.7.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sliplib 0.7.1
File Size Uploaded
sliplib-0.7.1.tar.gz 17.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sliplib 0.7.1
File Interpreter ABI Platform
sliplib-0.7.1-py3-none-any.whl Python 3 none any Details

Total release size: 39.2 kB

Release files / sliplib-0.7.1.tar.gz

Download URL sliplib-0.7.1.tar.gz
Size 17.4 kB
Tags Source
SHA-256 checksum
How to use checksums
a109f4413adc72612750fbbf0d35b13e2a28f12332ce4ca3c106f9064c310053
BLAKE2b-256 checksum
How to use checksums
d85974e2b1ba62c30af2b1ce1fcb51344be977d9b95a769df79b65a06556c590
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 23, 2025.

Transparency log

Release files / sliplib-0.7.1-py3-none-any.whl

Download URL sliplib-0.7.1-py3-none-any.whl
Size 21.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b0cbddd3ad9abc4d004dba47e5d85cc1e899c2c52d385c52cb36b41e0b298d50
BLAKE2b-256 checksum
How to use checksums
cfebc0dc4e5da99663c25e80c49987258f0703eb2634d35db0339f152b3b5519
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 23, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.7.1 This release

2 release files

0.7.0

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page