You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- direct peer-to-peer networking on a LAN or similarly controlled network
34
+
- pairing/bootstrap via `rootstream --qr`, peer codes, and local discovery where available
39
35
40
-
## Why RootStream?
36
+
Repository surfaces such as the KDE client, Windows client, web dashboard, Android, iOS, VR, and infrastructure code exist in-tree, but they are not the default supported product path today.
41
37
42
-
### The Problem
38
+
Start with these truth sources:
43
39
44
-
Current Linux streaming solutions (Steam Remote Play, Parsec, Sunshine) suffer from:
² Uses kernel-stable DRM/KMS APIs (10+ year stability)
58
-
³ NVFBC disabled on GeForce cards
59
-
⁴ Intel/AMD via VA-API; NVIDIA via VDPAU wrapper
46
+
Do not treat these as part of the current default supported path:
60
47
61
-
### The Solution
48
+
- KDE as the primary desktop client
49
+
- Windows as the primary peer platform
50
+
- Android or iOS as supported client platforms
51
+
- the React dashboard or optional web backend as the default management path
52
+
- VR / Proton as part of the supported baseline experience
53
+
- cloud-managed or account-based RootStream deployments
54
+
- benchmark numbers as settled product guarantees
62
55
63
-
RootStream takes a **radically different approach**:
64
-
```
65
-
Traditional Stack (7+ layers, more failure points):
66
-
┌─────────────────────────────────────────────┐
67
-
│ App → Compositor → PipeWire → Portal → │
68
-
│ → Permission Dialog → FFmpeg → Encoder │
69
-
└─────────────────────────────────────────────┘
70
-
Estimated: 30-56ms latency | 500MB memory
56
+
## What is RootStream?
71
57
72
-
RootStream Stack (3 layers, kernel-stable APIs):
73
-
┌─────────────────────────────────────────────┐
74
-
│ DRM/KMS → VA-API → ChaCha20-Poly1305 → UDP │
75
-
└─────────────────────────────────────────────┘
76
-
Target: 14-24ms latency | ~15MB memory baseline
77
-
```
58
+
RootStream is a Linux-first native peer-to-peer game streaming project. The repository is broader than the current support commitment, so the most important distinction is between what exists in code and what the project currently supports.
78
59
79
-
> **Note**: Performance numbers are design targets. Actual performance varies by hardware,
80
-
> network conditions, and system configuration. See "Reality vs. Claims" section below.
60
+
What is evidence-backed today:
61
+
62
+
- no required account or hosted control-plane in the supported core path
63
+
- native Linux host and peer entrypoints in the root executable
64
+
- libsodium-based cryptographic primitives
65
+
- QR or peer-code bootstrap for the native flow
66
+
- local discovery and backend fallback code in the native runtime
67
+
68
+
What is not yet a top-level support commitment:
69
+
70
+
- a benchmark-backed latency or memory proof set
71
+
- a clean NVIDIA-first product story
72
+
- KDE as the default desktop client
73
+
- web, mobile, VR, or cloud-managed deployment as equal first-class product lanes
-**Audio Options** - Opus passthrough (no re-encoding) or AAC encoding
111
105
-**Smart Storage** - Automatic disk space monitoring and cleanup of old recordings
112
106
-**Instant Replay** - Save the last N seconds of gameplay (buffer feature)
113
107
114
-
> **Note**: Recording feature requires FFmpeg libraries. See `src/recording/README.md` for details.
115
-
116
-
### 💡 Actually Easy to Use
108
+
> **Note**: Recording feature requires FFmpeg libraries. See `src/recording/README.md` for details and treat it as preview rather than the supported default path.
117
109
118
-
1.**Install RootStream**
119
-
```bash
120
-
make && sudo make install
121
-
```
122
-
123
-
2.**Show your QR code**
124
-
```bash
125
-
rootstream --qr
126
-
```
110
+
### Current Core Workflow
127
111
128
-
3.**Scan on another device**
129
-
- Instant pairing, no typing 44-character keys
112
+
1. Build the native Linux binary.
113
+
2. Start the host with `rootstream host`.
114
+
3. Generate/share host identity with `rootstream --qr`.
115
+
4. Connect from another Linux machine with `rootstream connect <peer_code>`.
130
116
131
-
4.**Auto-connect on LAN**
132
-
- mDNS discovery finds peers automatically
117
+
See [docs/CORE_PATH.md](docs/CORE_PATH.md) for the canonical path and [docs/SUPPORT_MATRIX.md](docs/SUPPORT_MATRIX.md) for adjacent surfaces that are preview or experimental.
133
118
134
119
---
135
120
136
121
## Installation
137
122
123
+
> **Support note**: The current supported product core is Linux-first. Intel/AMD VA-API is the clearest supported acceleration path today. NVIDIA-related instructions are kept here because the repository contains NVIDIA-oriented code and package assumptions, but they should not be read as a settled support guarantee.
124
+
138
125
### Arch Linux
139
126
140
127
#### Dependencies by GPU
@@ -183,7 +170,7 @@ vainfo
183
170
**Expected output:**
184
171
-**Intel**: `iHD driver` or `i965 driver`
185
172
-**AMD**: `Radeon` or `AMD Radeon`
186
-
-**NVIDIA**: `VDPAU backend` or `nvidia`
173
+
-**NVIDIA**: output varies by driver stack; treat NVIDIA results as less settled than the Intel/AMD VA-API path
-mDNS discovery may help on compatible local networks
261
+
-peer-code sharing remains the clearest documented bootstrap path
269
262
270
263
### Daily Use
271
264
272
-
**Tray App (Recommended)**
265
+
**Canonical supported path**
266
+
```bash
267
+
rootstream host
268
+
rootstream --qr
269
+
rootstream connect kXx7Y...@gaming-pc
270
+
```
271
+
272
+
**Alternate Linux tray entrypoint**
273
273
```bash
274
274
rootstream
275
275
```
276
-
- System tray icon shows status
277
-
- Left-click: Show your QR code
278
-
- Right-click: Menu (connect, view peers, quit)
276
+
- Available when GUI dependencies are present
277
+
- Not the canonical path documented in `docs/CORE_PATH.md`
279
278
280
279
**Command Line**
281
280
```bash
@@ -321,6 +320,7 @@ rootstream --replay-save last30s.mp4 # Save last 30 seconds
321
320
322
321
**Troubleshooting**
323
322
- See `docs/TROUBLESHOOTING.md` for decode, black screen, input, and dependency diagnostics.
323
+
- See `docs/SUPPORT_MATRIX.md` before treating alternate surfaces as supported.
324
324
325
325
**Identity Backup & Restore**
326
326
RootStream stores identity keys in `~/.config/rootstream/`:
@@ -517,7 +517,7 @@ are validated vs. aspirational design targets.
517
517
518
518
- **Compositor crash resilience**: DRM/KMS bypasses compositor in theory, but not extensively tested
519
519
520
-
- **NVIDIA support**: NVENC backend exists but VDPAU wrapper performance not benchmarked
520
+
- **NVIDIA support**: NVIDIA-oriented paths exist, but the repository does not yet present a clean benchmark-backed or support-committed NVIDIA story
521
521
522
522
#### 🎯 Aspirational / Not Fully Validated
523
523
@@ -528,7 +528,7 @@ are validated vs. aspirational design targets.
528
528
- **Security audit**: While using audited libraries (libsodium), RootStream's implementation
529
529
has not undergone independent security audit
530
530
531
-
- **Cross-platform**: Currently Linux-only; Windows/macOS support is future work
531
+
- **Cross-platform**: The supported core is Linux-to-Linux. A Windows client build path exists as preview; broader cross-platform support remains future work
532
532
533
533
- **Perfect forward secrecy**: Session key derivation uses ECDH, but no explicit ephemeral
534
534
key rotation per-packet
@@ -624,26 +624,29 @@ A: They can intercept encrypted packets, but cannot decrypt without your private
624
624
A: Only for internet streaming. LAN works without port forwarding.
625
625
626
626
**Q: Works over internet?**
627
-
A: Yes, but you need to forward UDP port 9876. Consider VPN (Tailscale, ZeroTier) for easier setup.
627
+
A: It may work with your own routing or VPN setup, but the current supported path is documented around LAN or similarly controlled private-network use.
628
628
629
629
**Q: Why not just use Steam Remote Play?**
630
-
A: Steam requires their servers, uses PipeWire (breaks often), NVFBC disabled on consumer GPUs, no encryption, and constant permission dialogs on Wayland.
630
+
A: RootStream is aimed at users who want a Linux-first native P2P path without required accounts. If you need a broader or more polished cross-platform product today, use the tool that fits your environment.
631
631
632
632
**Q: Will this work on my GPU?**
633
-
A: Intel/AMD: Yes (VA-API). NVIDIA: Via VDPAU wrapper (slower but works). Run `vainfo` to check.
633
+
A: Intel/AMDVA-API is the clearest supported acceleration story today. NVIDIA-related code exists, but the support story is still being cleaned up; see `docs/SUPPORT_MATRIX.md`.
634
634
635
635
**Q: Can I stream to Windows/Mac/Android?**
636
-
A: Not yet. Linux-only currently. Cross-platform client planned.
636
+
A: The supported core today is Linux-to-Linux. A Windows client build path exists as preview; Android, iOS, web, and VR remain outside the primary supported path.
637
637
638
638
**Q: Is this better than Parsec?**
639
-
A: For Linux-to-Linux: Yes (lower latency, no account, encrypted). For other platforms: Use Parsec for now.
639
+
A: Different goal. RootStream currently prioritizes a Linux-first native P2P path over broad platform coverage.
640
640
641
641
---
642
642
643
643
## Documentation
644
644
645
645
For more detailed information, see our documentation:
646
646
647
+
-**[Product Core](docs/PRODUCT_CORE.md)** - Supported product definition and non-goals
648
+
-**[Support Matrix](docs/SUPPORT_MATRIX.md)** - Supported, preview, experimental, and roadmap surfaces
649
+
-**[Core Path](docs/CORE_PATH.md)** - Canonical Linux host/peer workflow and checkpoints
647
650
-**[User Guide](docs/user-guide.md)** - Complete usage instructions, installation steps, and troubleshooting
648
651
-**[API Reference](docs/api.md)** - Full C API documentation with examples
649
652
-**[Architecture](docs/architecture.md)** - Technical deep-dive into protocol, security model, and internals
@@ -701,9 +704,9 @@ including integration with GitHub Copilot, Claude, and ChatGPT.
701
704
702
705
## Clients
703
706
704
-
### KDE Plasma Native Client (Recommended)
707
+
### KDE Plasma Client (Preview)
705
708
706
-
RootStream now features a **native KDE Plasma Qt/QML client** for the best Linux desktop experience:
709
+
A separate KDE Plasma Qt/QML client exists in-tree:
707
710
708
711
```bash
709
712
cd clients/kde-plasma-client
@@ -713,15 +716,13 @@ make -j$(nproc)
713
716
sudo make install
714
717
```
715
718
716
-
**Features:**
717
-
- Native Qt 6 / QML interface
718
-
- KDE Plasma integration
719
-
- Hardware-accelerated decoding (VA-API)
720
-
- PulseAudio/PipeWire audio support
721
-
- AI logging mode for debugging
722
-
- Comprehensive settings management
719
+
Current status:
720
+
721
+
- visible desktop client target with its own build system
722
+
- not the canonical supported client path
723
+
- subtree README still marks several core runtime areas as in progress
723
724
724
-
See **[clients/kde-plasma-client/README.md](clients/kde-plasma-client/README.md)** for complete documentation.
725
+
See **[clients/kde-plasma-client/README.md](clients/kde-plasma-client/README.md)** for subtree-specific details, and see **[docs/SUPPORT_MATRIX.md](docs/SUPPORT_MATRIX.md)** before treating it as a supported default.
Copy file name to clipboardExpand all lines: docs/ARCHITECTURE.md
+12-3Lines changed: 12 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,14 @@
1
1
# RootStream Technical Architecture
2
2
3
+
This document explains subsystem structure and intended technical boundaries. It is not the source of truth for support status, roadmap scope, or current execution progress.
4
+
5
+
Use these documents for neighboring questions:
6
+
7
+
- Support status: [`docs/SUPPORT_MATRIX.md`](SUPPORT_MATRIX.md)
RootStream is built on one core principle: **Use the kernel APIs directly**. Every abstraction layer adds latency, complexity, and failure points. We bypass them all.
@@ -45,7 +54,7 @@ UDP socket
45
54
- Uses kernel APIs (stable for 10+ years)
46
55
- Reduced permission requirements (video group membership)
47
56
- Reduced compositor dependencies
48
-
-Target latency: 14-24ms (varies by hardware; see Performance section)
57
+
-Latency targets exist, but benchmark-backed proof belongs in dedicated benchmark and performance docs rather than this architecture summary
49
58
50
59
## Component Details
51
60
@@ -104,10 +113,10 @@ munmap(pixels, size);
104
113
**What is VA-API?**
105
114
Video Acceleration API - hardware video encoding/decoding interface.
106
115
107
-
**Supported Hardware:**
116
+
**Current acceleration codepaths in tree:**
108
117
- Intel: All modern integrated + discrete GPUs
109
118
- AMD: AMDGPU driver (GCN 1.0+)
110
-
- NVIDIA: Via VDPAU wrapper (lower performance)
119
+
- NVIDIA: NVIDIA-oriented code exists in-tree, but the current public support story is still being reconciled
0 commit comments