GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • serialpilot
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles

This view

  • Original page
  • New address

GeezerVison is showing github.com β€” serialpilot

README.md

SerialPilot

SerialPilot

Talk to hardware. From JavaScript and Rust.

A cross-platform serial-port toolkit. Linux Β· macOS Β· Windows.

Main repo Latest release Build npm Node.js Rust TypeScript License


πŸ‘‹ Welcome

SerialPilot is a modern, batteries-included toolkit for talking to serial devices β€” Arduinos, GPS modules, modems, industrial PLCs, RFID readers, point-of-sale hardware, anything that speaks UART. Native bindings under the hood, ergonomic streams and parsers on top, fully typed end-to-end, and a sibling Rust crate for everywhere Node can't go.

If you've ever fought node-serialport quirks or written the same reconnect-loop and command-queue code for the third time, this is for you.

⚑ Quick start

npm install serialpilot
import { SerialPilot, ReadlineParser } from 'serialpilot'

const port = new SerialPilot({ path: '/dev/ttyUSB0', baudRate: 115200 })
const lines = port.pipe(new ReadlineParser({ delimiter: '\n' }))

lines.on('data', line => console.log('←', line))
port.write('PING\n')

Need auto-reconnect, request/response queues, or one of 11 protocol parsers? Each lives in its own package β€” pick what you need.

πŸ“¦ What's inside

Core

Package What it does
serialpilot The umbrella package with sensible defaults β€” start here.

Bindings β€” the layer that touches the OS

Package What it does
@serialpilot/bindings-cpp Native C++/NAPI bindings for Linux, macOS, Windows.
@serialpilot/bindings-interface TypeScript interface for authoring custom bindings.
@serialpilot/binding-mock In-memory mock binding for testing.
serialpilot-rust Standalone, pure-Rust serial port crate. Built with cargo.

Interfaces

Package What it does
@serialpilot/stream Node.js Duplex Stream interface over a binding.

High-level helpers

Package What it does
@serialpilot/reconnect Drop-in auto-reconnect wrapper for resilient connections.
@serialpilot/command-queue Request/response queue for AT commands, Modbus RTU, and similar protocols.

Parsers β€” turn raw bytes into messages

Package What it does
@serialpilot/parser-byte-length Emit fixed-length chunks.
@serialpilot/parser-cctalk ccTalk coin/note acceptor protocol.
@serialpilot/parser-delimiter Split on a custom delimiter.
@serialpilot/parser-inter-byte-timeout Emit when the line goes quiet.
@serialpilot/parser-packet-length Length-prefixed framed packets.
@serialpilot/parser-readline Newline-terminated text β€” the most common parser.
@serialpilot/parser-ready Wait for a "ready" sentinel before emitting downstream.
@serialpilot/parser-regex Split using a regular expression.
@serialpilot/parser-slip-encoder RFC 1055 SLIP framing.
@serialpilot/parser-spacepacket CCSDS Space Packet protocol.
@serialpilot/parser-start-end Frame on start/end byte sequences.

CLI tools

Package Binary What it does
@serialpilot/list serialpilot-list Enumerate ports on this machine.
@serialpilot/terminal serialpilot-terminal Interactive serial console.
@serialpilot/repl serialpilot-repl Scriptable Node REPL bound to a port.

🍳 Recipes

Hands-on guides under docs/recipes/:

  • Arduino β€” read sensor data, write commands.
  • Modbus RTU β€” talk to industrial hardware.
  • Electron β€” bundle SerialPilot in a desktop app.
  • Docker β€” pass /dev/tty* into containers.
  • Error handling β€” typed errors, structured retries.
  • Reconnect β€” survive cable yanks and device resets.

🎯 Why SerialPilot

  • Typed end-to-end. Every package ships hand-written TypeScript declarations. No @types/... chase.
  • Modular. Use the umbrella serialpilot for defaults, or pick exactly the binding + parser + helper you want.
  • Testable. First-class binding-mock means your tests don't need a USB device on the CI runner.
  • Polyglot. A pure-Rust crate (serialpilot-rust) for embedded, CLI, and systems-programming use cases where Node isn't an option.
  • CI on every push β€” Linux, macOS, Windows.
  • MIT β€” use it anywhere.

🀝 Get involved

Channel Use it for
Discussions Questions, design proposals, "show & tell".
Issues Reproducible bugs and concrete feature requests.
Contributing guide How to send a PR.
Security policy Report a vulnerability privately.
Code of conduct The community ground rules.

πŸ‘€ Maintainer

Built and maintained by Ritesh Rana β€” [email protected].

If SerialPilot saves you a weekend, consider buying me a coffee β˜•.

πŸ“„ License

All SerialPilot projects are released under the MIT License.

Popular repositories Loading

  1. serialpilot serialpilot Public

    Cross-platform serial port toolkit for Node.js and Rust β€” bindings, parsers, REPL, terminal, and reconnect/queue helpers.

    TypeScript

  2. .github .github Public

  3. serialpilot-protocols serialpilot-protocols Public

    This is the missing middle layer for the SerialPilot org: a small set of pure-function protocol codecs (no I/O, no native deps, Uint8Array-only) plus their Transform-stream parser counterparts.

    TypeScript

  4. serialpilot-drivers serialpilot-drivers Public

    Higher-level device drivers built on SerialPilot.

    TypeScript

Repositories

Loading
Type
Language
Sort
Showing 4 of 4 repositories
  • serialpilot-drivers Public

    Higher-level device drivers built on SerialPilot.

    Uh oh!

    There was an error while loading. Please reload this page.

    serialpilot/serialpilot-drivers's past year of commit activity
    TypeScript 0 MIT 0 0 0 Updated May 10, 2026
  • serialpilot Public

    Cross-platform serial port toolkit for Node.js and Rust β€” bindings, parsers, REPL, terminal, and reconnect/queue helpers.

    Uh oh!

    There was an error while loading. Please reload this page.

    serialpilot/serialpilot's past year of commit activity
    TypeScript 0 MIT 0 0 0 Updated May 10, 2026
  • serialpilot-protocols Public

    This is the missing middle layer for the SerialPilot org: a small set of pure-function protocol codecs (no I/O, no native deps, Uint8Array-only) plus their Transform-stream parser counterparts.

    Uh oh!

    There was an error while loading. Please reload this page.

    serialpilot/serialpilot-protocols's past year of commit activity
    TypeScript 0 MIT 0 0 0 Updated May 10, 2026
  • .github Public

    Uh oh!

    There was an error while loading. Please reload this page.

    serialpilot/.github's past year of commit activity
    0 0 0 0 Updated May 9, 2026

People

@ambicuity

Top languages

Loading…

Uh oh!

There was an error while loading. Please reload this page.

Most used topics

Loading…

Uh oh!

There was an error while loading. Please reload this page.

You are visitor 01402503 β€” GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800Γ—600. No cookies required.