LiveShark is a post-mortem network analyzer for show control.
It analyzes PCAP/PCAPNG captures and turns Art-Net / sACN traffic into DMX frame reconstruction, automatic conflict detection (double emitters), and reproducible reports.
Status: v0.1 specification complete / core + follow implemented; ongoing hardening.
What LiveShark does:
- Analyze PCAP/PCAPNG captures (Art-Net, sACN)
- Reconstruct DMX frames (512 slots per universe)
- Detect conflicts (double emitters)
- Generate versioned, reproducible JSON reports
What LiveShark is not:
- Not a Wireshark replacement (domain-specific analyzer)
- Not a live capture tool (v0.1 is offline post-mortem)
- Not a DMX transmitter (passive analysis only)
Next steps: see the Roadmap section below.
- Wireshark: excellent packet view, but no DMX frame reconstruction or domain metrics.
- sACNView / ArtNetominator: great live monitoring, but no offline PCAP post-mortem.
- LiveShark bridges the gap: offline + DMX frames + conflicts + reports.
- Printable specification sources (authoritative):
spec/en/LiveShark_Spec.tex - Consumer contract guide (JSON):
docs/consumer-contract.md - Documentation build instructions:
docs/README.md - Rust architecture rules (normative):
docs/RUST_ARCHITECTURE.md
The project specification (requirements) is written in LaTeX (.tex); see "Build the PDFs" below to compile it.
- Offline analysis (post-mortem): analyze a completed PCAP/PCAPNG capture file.
- Follow mode: near-real-time analysis of a capture file that is still being written by an external tool.
- Native live capture (future, optional): a possible future objective, not required for the initial milestone.
Follow mode rewrites a full report while a capture file grows:
liveshark pcap follow capture.pcapng --report report.json
Offline-first is an implementation strategy (robustness, reproducibility), not a product limitation. LiveShark also targets reliable network diagnostics for small/medium show rigs (wired/wireless), focusing on loss, jitter, and burst patterns with probable-cause hints when possible.
Analyze a capture and write a report:
liveshark pcap analyze capture.pcapng --report report.json
Follow a growing capture and rewrite the report:
liveshark pcap follow capture.pcapng --report report.json
Interpretation notes:
- Absence != zero (optional fields are omitted when not computable).
- Loss metrics are only reported when sequence numbers exist (sACN).
- Output lists are sorted for deterministic reports.
See gui/report-viewer/ for a zero-dependency, offline HTML viewer of report.json.
Contract reminders: absence != zero, loss only when sequence exists (sACN), and JSON lists are deterministic.
Note: when opened via file://, Reload can only re-read the last selected file object.
Large reports may be slow to render in the table view.
The specs are compiled directly from the .tex sources (no external diagram tools required).
Option A -- MiKTeX GUI (Windows, no terminal required)
- Open
spec/en/LiveShark_Spec.texin the MiKTeX/TeXworks GUI. - Use XeLaTeX and compile to PDF.
Note: this does not require Perl; latexmk does.
Option B -- Make (if available)
make pdfOption C -- direct (requires Perl for latexmk on Windows)
latexmk -xelatex -interaction=nonstopmode -halt-on-error spec/en/LiveShark_Spec.texOutputs:
spec/en/LiveShark_Spec.pdfNote: PDFs are generated artifacts and should not be committed to the repository.
- v0.1: offline PCAP analysis + Art-Net/sACN decoding + DMX frames + conflict detector + JSON reports
- v0.2: GUI offline (timeline + diff viewer)
- v0.3+: live capture (optional)
Code: MIT OR Apache-2.0 (see LICENSE-MIT and LICENSE-APACHE).
Docs/specs: CC-BY-4.0 (see LICENSE-CC-BY-4.0).
PDFs are built with XeLaTeX/latexmk only (TikZ for diagrams). No external diagram tools are required. Rust toolchain: edition 2024, MSRV 1.85 (CI validates stable + MSRV).