# pyserial/pyserial

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/pyserial-pyserial).**

3,507 stars · 1,153 forks · Python · other

## Links

- GitHub: https://github.com/pyserial/pyserial
- Homepage: http://pyserial.readthedocs.io/en/latest/
- awesome-repositories: https://awesome-repositories.com/repository/pyserial-pyserial.md

## Topics

`python` `serial`

## Description

pyserial is a cross-platform Python library for reading and writing binary data to serial ports and hardware devices. It provides a serial port enumeration tool for identifying available hardware and retrieving device path metadata.

The project includes a network implementation for controlling remote serial port functions and signal lines over TCP/IP via the RFC 2217 standard. It also features a serial-to-TCP bridge for forwarding raw data between local ports and network sockets, as well as a specialized interface for managing half-duplex RS485 communication and RTS toggling.

The library covers broad hardware integration capabilities, including port configuration for baud rates and parity, binary data transmission using file-like interfaces, and port discovery via hardware IDs or regular expressions. It further provides tools for serial traffic interception, loopback connection simulation for testing, and an interactive serial terminal for device communication.

## Tags

### Hardware & IoT

- [Hardware Communication](https://awesome-repositories.com/f/hardware-iot/connectivity-iot/hardware-communication.md) — Establishes stable data links with external hardware by configuring baud rates, parity, and stop bits.
- [Serial Port Interfaces](https://awesome-repositories.com/f/hardware-iot/connectivity-iot/hardware-communication/serial-port-interfaces.md) — Provides a cross-platform library for reading and writing binary data to serial ports and hardware devices. ([source](http://pyserial.readthedocs.io/en/latest/shortintro.html))
- [Port Enumeration](https://awesome-repositories.com/f/hardware-iot/connectivity-iot/hardware-communication/serial-port-interfaces/port-enumeration.md) — Identifies available serial ports on the system and retrieves hardware IDs and device path metadata. ([source](http://pyserial.readthedocs.io/en/latest/tools.html))
- [Stream Abstractions](https://awesome-repositories.com/f/hardware-iot/connectivity-iot/hardware-communication/serial-port-interfaces/stream-abstractions.md) — Provides a standard file-like read and write interface that treats hardware ports as binary streams.
- [Serial Communication Interfaces](https://awesome-repositories.com/f/hardware-iot/integration-performance/hardware-interfacing-integration/hardware-interfacing/serial-communication-interfaces.md) — Provides a cross-platform library to open and manage connections to serial hardware across different operating systems. ([source](http://pyserial.readthedocs.io/en/latest/_sources/index.rst.txt))
- [Serial Data Streamers](https://awesome-repositories.com/f/hardware-iot/integration-performance/hardware-interfacing-integration/hardware-interfacing/serial-communication-interfaces/usb-serial-interfaces/serial-data-streamers.md) — Sends raw byte strings to connected serial devices to transmit commands or data. ([source](http://pyserial.readthedocs.io/en/latest/shortintro.html))
- [Serial Parameter Configurations](https://awesome-repositories.com/f/hardware-iot/serial-parameter-configurations.md) — A feature of the project that adjusts baud rate, byte size, and flow control for external hardware communication. ([source](https://github.com/pyserial/pyserial/blob/master/documentation/pyserial.rst))
- [RS485 Communication](https://awesome-repositories.com/f/hardware-iot/connectivity-iot/hardware-communication/serial-device-communication/rs485-communication.md) — Manages half-duplex serial communication and RTS toggling for hardware devices operating on the RS485 standard.
- [Hardware Filter Patterns](https://awesome-repositories.com/f/hardware-iot/connectivity-iot/hardware-communication/serial-port-interfaces/port-enumeration/hardware-filter-patterns.md) — A feature of the project that finds available serial ports on the host system and filters them using regular expressions. ([source](http://pyserial.readthedocs.io/en/latest/shortintro.html))
- [Timeout Management](https://awesome-repositories.com/f/hardware-iot/connectivity-iot/hardware-communication/serial-port-interfaces/timeout-management.md) — Sets the duration the system waits for incoming data to prevent application hangs. ([source](https://github.com/pyserial/pyserial/blob/master/documentation/pyserial.rst))
- [Interactive Terminals](https://awesome-repositories.com/f/hardware-iot/connectivity-iot/hardware-communication/virtual-serial-terminals/interactive-terminals.md) — Provides a console-based terminal emulator for interactive communication with connected serial devices. ([source](http://pyserial.readthedocs.io/en/latest/shortintro.html))
- [Embedded Device Debugging](https://awesome-repositories.com/f/hardware-iot/embedded-device-debugging.md) — Enables reading and writing raw binary data to embedded devices to monitor traffic and send commands.
- [Hardware Device Discovery](https://awesome-repositories.com/f/hardware-iot/hardware-device-discovery.md) — Searches for available serial ports by matching regular expressions against device descriptions or hardware IDs. ([source](http://pyserial.readthedocs.io/en/latest/url_handlers.html))
- [HID Device Communication](https://awesome-repositories.com/f/hardware-iot/hid-device-communication.md) — Implements a software-based communication stack to interact with USB HID hardware without kernel drivers.
- [RS485 Communication Management](https://awesome-repositories.com/f/hardware-iot/integration-performance/hardware-interfacing-integration/hardware-interfacing/serial-communication-interfaces/rs485-communication-management.md) — Manages RS485 settings and RTS toggling to support half-duplex serial communication on compatible hardware. ([source](http://pyserial.readthedocs.io/en/latest/pyserial_api.html))

### Data & Databases

- [Binary Stream Interfaces](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/data-persistence-storage/data-storage/file-based-storage/local-file-storage/local-file-writing/binary-file-writing/binary-stream-interfaces.md) — Provides a binary stream interface that preserves null bytes and line endings during serial I/O. ([source](http://pyserial.readthedocs.io/en/latest/pyserial.html))
- [Serial-to-Network Converters](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/data-serialization/serial-to-network-converters.md) — Forwards raw data between a local serial port and a network socket to allow remote hardware access.

### Networking & Communication

- [Serial Binary Transmission](https://awesome-repositories.com/f/networking-communication/binary-data-processors/serial-binary-transmission.md) — Transmits and receives raw binary data through a serial port using a file-like interface. ([source](http://pyserial.readthedocs.io/en/latest/py-modindex.html))
- [RFC 2217 Clients](https://awesome-repositories.com/f/networking-communication/network-clients/rfc-2217-clients.md) — Provides a network client to manage remote serial port settings and signal lines via the RFC 2217 standard. ([source](http://pyserial.readthedocs.io/en/latest/pyserial_api.html))
- [RFC 2217 Implementations](https://awesome-repositories.com/f/networking-communication/network-protocol-implementations/rfc-2217-implementations.md) — Implements the RFC 2217 standard to manage remote serial port settings and signal lines over TCP/IP.
- [RFC 2217 Servers](https://awesome-repositories.com/f/networking-communication/network-server-implementations/rfc-2217-servers.md) — Implements an RFC 2217 server to handle protocol negotiation and control commands for network-to-serial conversion. ([source](http://pyserial.readthedocs.io/en/latest/pyserial_api.html))
- [Remote Management Access](https://awesome-repositories.com/f/networking-communication/remote-access-control/remote-management-access.md) — Connects to hardware ports over a network using TCP sockets or the RFC 2217 protocol.
- [RFC 2217 Implementations](https://awesome-repositories.com/f/networking-communication/rfc-2217-implementations.md) — Provides a network implementation for controlling remote serial port functions and signal lines over TCP/IP.

### Operating Systems & Systems Programming

- [Serial Data Buffers](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management/memory-management/buffer-and-cache-management/binary-buffer-managers/trace-buffer-managers/audio-buffers/circular-command-buffers/serial-data-buffers.md) — Retrieves data from serial ports by reading specific byte counts, single lines, or buffered data. ([source](http://pyserial.readthedocs.io/en/latest/shortintro.html))
- [Platform Backend Dispatchers](https://awesome-repositories.com/f/operating-systems-systems-programming/platform-backend-dispatchers.md) — Selects the appropriate platform-specific driver implementation at runtime to handle low-level system calls across different operating systems.

### Software Engineering & Architecture

- [Runtime Parameter Tuning](https://awesome-repositories.com/f/software-engineering-architecture/runtime-parameter-tuning.md) — Adjusts byte size, parity, and flow control to match the requirements of external hardware during execution. ([source](http://pyserial.readthedocs.io/en/latest/pyserial.html))
