Rename project from xserial to pipeview
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
56
README_en.md
56
README_en.md
@@ -1,4 +1,4 @@
|
||||
# xserial
|
||||
# pipeview
|
||||
|
||||
**Cross-platform serial / TCP / UDP data inspection tool** with configurable framing, protocol decoding, multi-session management, and real-time waveform plotting — all in a single binary.
|
||||
|
||||
@@ -89,8 +89,8 @@ Built-in LuaJIT runtime:
|
||||
|
||||
- **Custom framers** — implement `feed(bytes)`, `flush()`, `reset()`, `pending_len()`
|
||||
- **Custom decoders** — implement `decode(frame)`, return text/hex/plot/binary
|
||||
- **Session API** — `xserial.open()` to create sessions, `session:on_data()` for event callbacks, `session:send()` to transmit data
|
||||
- **Utilities** — `xserial.list_ports()`, `xserial.sleep(ms)`, `xserial.poll(limit)`, `xserial.log(msg)`
|
||||
- **Session API** — `pipeview.open()` to create sessions, `session:on_data()` for event callbacks, `session:send()` to transmit data
|
||||
- **Utilities** — `pipeview.list_ports()`, `pipeview.sleep(ms)`, `pipeview.poll(limit)`, `pipeview.log(msg)`
|
||||
|
||||
### Keyboard Shortcuts
|
||||
|
||||
@@ -124,10 +124,10 @@ Built-in LuaJIT runtime:
|
||||
### Build & Run
|
||||
|
||||
```bash
|
||||
git clone https://github.com/your-org/xserial.git
|
||||
cd xserial
|
||||
git clone https://github.com/your-org/pipeview.git
|
||||
cd pipeview
|
||||
|
||||
cargo run -p xserial-gui
|
||||
cargo run -p pipeview-gui
|
||||
|
||||
# Run tests
|
||||
cargo test --workspace # ~308 tests
|
||||
@@ -137,9 +137,9 @@ cargo clippy --workspace --all-targets -- -D warnings
|
||||
### Release Build
|
||||
|
||||
```bash
|
||||
cargo build -p xserial-gui --release
|
||||
# Binary: target/release/xserial-gui (Linux/macOS)
|
||||
# target/release/xserial-gui.exe (Windows)
|
||||
cargo build -p pipeview-gui --release
|
||||
# Binary: target/release/pipeview-gui (Linux/macOS)
|
||||
# target/release/pipeview-gui.exe (Windows)
|
||||
```
|
||||
|
||||
---
|
||||
@@ -160,7 +160,7 @@ python tools/test_drone.py --rate 10 --port 8091
|
||||
|
||||
### Step 2: Configure the session
|
||||
|
||||
In xserial-gui, create a session with two pipelines:
|
||||
In pipeview-gui, create a session with two pipelines:
|
||||
|
||||
| Setting | Value |
|
||||
|---------|-------|
|
||||
@@ -265,23 +265,23 @@ More examples in `examples/`.
|
||||
|
||||
```
|
||||
┌──────────────────────────────────────────────────┐
|
||||
│ xserial-gui (egui) xserial-tui (ratatui) │
|
||||
│ pipeview-gui (egui) pipeview-tui (ratatui) │
|
||||
├──────────────────────────────────────────────────┤
|
||||
│ xserial-client │
|
||||
│ pipeview-client │
|
||||
│ SessionManager · Session · Config · History │
|
||||
│ Lua Runtime (mlua / LuaJIT) │
|
||||
├──────────────────────────────────────────────────┤
|
||||
│ xserial-core │
|
||||
│ pipeview-core │
|
||||
│ Transport ──▶ Frame ──▶ Protocol ──▶ Pipeline │
|
||||
└──────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
| Crate | Type | Purpose |
|
||||
|-------|------|---------|
|
||||
| `xserial-core` | library | Transport (Serial/TCP/UDP), framers (Line/Fixed/Length/COBS/Mixed/Lua), decoders (Text/Hex/Plot), MultiPipeline |
|
||||
| `xserial-client` | library | Session lifecycle, SessionManager, event broadcast (tokio broadcast), RingBuffer history, Lua runtime & session API |
|
||||
| `xserial-gui` | binary | egui desktop app: sidebar, config, console, text/hex/plot panels, keyboard shortcuts, font management, profiling |
|
||||
| `xserial-tui` | binary | ratatui terminal app (feature-incomplete, under development) |
|
||||
| `pipeview-core` | library | Transport (Serial/TCP/UDP), framers (Line/Fixed/Length/COBS/Mixed/Lua), decoders (Text/Hex/Plot), MultiPipeline |
|
||||
| `pipeview-client` | library | Session lifecycle, SessionManager, event broadcast (tokio broadcast), RingBuffer history, Lua runtime & session API |
|
||||
| `pipeview-gui` | binary | egui desktop app: sidebar, config, console, text/hex/plot panels, keyboard shortcuts, font management, profiling |
|
||||
| `pipeview-tui` | binary | ratatui terminal app (feature-incomplete, under development) |
|
||||
|
||||
**Dependency flow:** `core ← client ← {gui, tui}`
|
||||
|
||||
@@ -304,9 +304,9 @@ GUI state is saved automatically to platform-standard locations:
|
||||
|
||||
| Platform | Path |
|
||||
|----------|------|
|
||||
| Linux | `$XDG_CONFIG_HOME/xserial/gui-state.json` or `~/.config/xserial/gui-state.json` |
|
||||
| macOS | `~/Library/Application Support/xserial/gui-state.json` |
|
||||
| Windows | `%APPDATA%\xserial\gui-state.json` |
|
||||
| Linux | `$XDG_CONFIG_HOME/pipeview/gui-state.json` or `~/.config/pipeview/gui-state.json` |
|
||||
| macOS | `~/Library/Application Support/pipeview/gui-state.json` |
|
||||
| Windows | `%APPDATA%\pipeview\gui-state.json` |
|
||||
|
||||
Persisted data includes: session configurations (transport, pipelines), log settings, active tab, and display options.
|
||||
|
||||
@@ -331,25 +331,25 @@ python tools/test_drone.py --rate 10 --port 8092
|
||||
### Profiling
|
||||
|
||||
```bash
|
||||
RUST_LOG=xserial_gui::perf=info XSERIAL_GUI_PROFILE=1 cargo run -p xserial-gui
|
||||
XSERIAL_GUI_PROFILE_INTERVAL_MS=500 cargo run -p xserial-gui
|
||||
RUST_LOG=pipeview_gui::perf=info XSERIAL_GUI_PROFILE=1 cargo run -p pipeview-gui
|
||||
XSERIAL_GUI_PROFILE_INTERVAL_MS=500 cargo run -p pipeview-gui
|
||||
```
|
||||
|
||||
### Tracing
|
||||
|
||||
```bash
|
||||
RUST_LOG=info cargo run -p xserial-gui
|
||||
RUST_LOG=xserial_gui=debug cargo run -p xserial-gui
|
||||
RUST_LOG=info cargo run -p pipeview-gui
|
||||
RUST_LOG=pipeview_gui=debug cargo run -p pipeview-gui
|
||||
```
|
||||
|
||||
### Project Structure
|
||||
|
||||
```
|
||||
crates/
|
||||
xserial-core/ # Transport, framing, protocol
|
||||
xserial-client/ # Session management, Lua runtime
|
||||
xserial-gui/ # egui desktop application
|
||||
xserial-tui/ # ratatui terminal application
|
||||
pipeview-core/ # Transport, framing, protocol
|
||||
pipeview-client/ # Session management, Lua runtime
|
||||
pipeview-gui/ # egui desktop application
|
||||
pipeview-tui/ # ratatui terminal application
|
||||
examples/ # Lua script examples
|
||||
drone_plot.lua # Drone telemetry plot decoder
|
||||
drone_text.lua # Drone telemetry text decoder
|
||||
|
||||
Reference in New Issue
Block a user