crabterm 0.1.0

A terminal (UART) server and client
# crabterm

A terminal (UART) server and client written in Rust.

Inspired by [termhub](https://github.com/allannielsen/termhub) but rewritten from scratch in Rust (not compatible).

If used without the server ability, then it is very similar to picocom or
minicom.

## Features

- Serial port connections (e.g., `/dev/ttyUSB0`)
- TCP device connections (connect to remote serial servers)
- TCP server mode (expose a serial port over the network)
- Multiple simultaneous TCP clients
- Echo mode for testing without hardware
- Configurable keybindings
- Timestamp filtering on output
- Auto-reconnection on disconnect

## Installation

```bash
cargo build --release
sudo cp target/release/crabterm /usr/local/bin/
```

## Usage

```bash
# Connect to a serial device
crabterm /dev/ttyUSB0

# Connect with specific baudrate
crabterm /dev/ttyUSB0 -b 9600

# Connect to a TCP device
crabterm 192.168.1.100:4000

# Start a TCP server exposing a serial port
crabterm /dev/ttyUSB0 -p 4000

# Echo mode (for testing)
crabterm echo

# Headless mode (daemon, no local console)
crabterm /dev/ttyUSB0 -p 4000 --headless
```

## Configuration

Configuration file: `~/.crabterm`

Example:
```
# Quit with Ctrl+Q
bind ctrl+q quit

# Prefix mode: Ctrl+A followed by another key
prefix ctrl+a

# Send break signal with Ctrl+A, b
bind ctrl+a b send \x00

# Toggle timestamp filter
bind ctrl+a t filter-toggle timestamp
```

## License

MIT