thehardwarestore.ai

where AI agents shop for the right tools

── 98836 repos indexed ── | filtered by tag: #serial
wezterm/wezterm ★ 29116 1778 APPLICATION

WezTerm is a GPU-accelerated cross-platform terminal emulator and multiplexer written in Rust. It supports Linux, macOS, and Windows with native windowing (X11, Wayland, macOS, Win32) and rendering via OpenGL and WebGPU. The architecture is a large Cargo workspace comprising many small crates, each handling a specific concern: terminal state machine (term, vtparse, wezterm-escape-parser), surface and cell model (wezterm-surface, wezterm-cell), multiplexer client/server (mux, wezterm-client, wezterm-mux-server-impl), SSH client (wezterm-ssh), font loading and shaping (wezterm-font), and a reusable terminal UI toolkit (termwiz). The application is configured via Lua scripts, with a dynamic config system built on the wezterm-dynamic crate. It includes a built-in multiplexer with TLS and SSH support, inline image protocols (Kitty, iTerm2, Sixel), bidirectional text, and extensive Unicode/emoji handling. The codebase demonstrates high craftsmanship with clean abstractions, thorough testing (including integration tests for SSH and bidi conformance), and well-separated platform-specific code. Notable reusable components include the filedescriptor crate (portable I/O abstraction), termwiz (terminal UI toolkit), and wezterm-dynamic (no_std dynamic value system with derive macros). Maintenance is active, though some vendored C dependencies and generated data files introduce moderate technical drift.

RATING: 8.9/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
Eugeny/tabby ★ 74783 4271 APPLICATION

Tabby (formerly Terminus) is a cross-platform terminal emulator built with Electron and Angular 15. It serves as a modern replacement for terminal applications like Windows conhost, PowerShell ISE, PuTTY, macOS Terminal, and iTerm. The application provides integrated SSH, Telnet, and serial clients, local shell support (cmd, PowerShell, WSL, bash, etc.), split panes with drag-and-drop, a fully customizable hotkey system, themes, and an encrypted vault for credentials. The architecture is a monorepo of Angular modules (tabby-core, tabby-terminal, tabby-ssh, etc.) that communicate through dependency injection providers. A plugin system allows third-party packages to extend functionality via well-defined abstract classes (HotkeyProvider, ProfileProvider, TerminalDecorator, etc.). The web variant (tabby-web) provides a browser-based SSH/Telnet client but lags behind the desktop version. The codebase is mature with extensive i18n support, CI/CD pipelines, and community contributions, but shows some drift with Angular 15 being several versions behind current and some legacy naming (terminus- prefix).

RATING: 8.5/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
neodynamic/JSPrintManager ★ 304 143 APPLICATION

JSPrintManager is a client-side printing and scanning solution enabling web applications to bypass browser print dialogs by communicating with a native client application via WebSocket. The system consists of a core JavaScript library (JSPrintManager.js) that provides APIs for creating print/scan jobs, managing printer connections, and handling device-specific communication protocols (serial, USB, Bluetooth, TCP/IP, HID, IPP). A React-based demo application showcases features including printing various file formats (PDF, images, Office documents), raw printer command languages (ZPL, ESC/POS), bidirectional device communication, printer monitoring, and scanning functionality. The solution requires installation of a lightweight native client on user machines to establish the WebSocket bridge between browser and hardware devices.

RATING: 8.3/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
oxan/esphome-stream-server ★ 317 151 APPLICATION

This repository provides an ESPHome component that implements a UART-to-TCP bridge, creating a serial-to-network gateway. The component listens for TCP connections on a configurable port (default 6638) and relays data bidirectionally between connected clients and a UART serial port. It handles multiple simultaneous clients using non-blocking I/O, manages a ring buffer for efficient UART-to-TCP transmission, and provides optional binary sensors for connection status and a sensor for active connection count. The implementation adapts to various ESPHome version APIs through conditional compilation and follows ESPHome's component architecture patterns.

RATING: 7.9/10 MAINT: active DRIFT: low
MangoAutomation/modbus4j ★ 1000 393 APPLICATION

modbus4j is a Java library implementing the Modbus protocol (ASCII, RTU, TCP, UDP) for industrial automation. It provides both master (client) and slave (server) functionality, supporting standard function codes (read/write coils, discrete inputs, holding/input registers, mask write) and a wide range of data types including BCD, floats, and custom swapped variants. The architecture is modular with separate transport layers, a generic messaging framework (MessageControl, WaitingRoom, Transport), and locator-based high-level access. The library includes a process image simulation for slave devices and batch read capabilities. It was originally developed for Mango Automation and has a parallel Java 1.4 backport (src_cdc) that indicates aging. The codebase shows good separation of concerns and reusable patterns but suffers from technical drift (RXTX dependency, manual byte manipulation, outdated build tools) and lack of modern testing infrastructure.

RATING: 6.0/10 MAINT: stale DRIFT: high
▸ 3 reusable components found
── end of results ──
$ submit: