Skip to content

Latest commit

 

History

History
194 lines (149 loc) · 10.4 KB

File metadata and controls

194 lines (149 loc) · 10.4 KB

SpiritStream Documentation

Back to Project


SpiritStream is a multi-destination streaming application that lets you stream to YouTube, Twitch, Kick, Facebook, and custom RTMP servers simultaneously. Built with Tauri 2.x, Rust, and React.


Quick Navigation

I Need To... Start Here
Install and run SpiritStream Getting Started
Understand the architecture System Overview
Learn about backend services Services Layer
Understand frontend state State Management
Configure streaming FFmpeg Integration
Reference the API Commands API
Deploy with Docker Building
Look up a term Glossary

Project Statistics

Metric Value
Framework Tauri 2.x + Axum
Backend Rust (10,000+ lines)
Frontend React 19 + TypeScript (8,700+ lines)
Tauri Commands 30+
UI Components 40+
Supported Platforms Windows, macOS, Linux
Deployment Modes Desktop, Docker, Cloud (future)
Supported Languages 5 (en, es, fr, de, ja)

Reading Paths

Beginner (2-4 hours)

New to desktop apps or streaming? Start here:

  1. Glossary — Learn key terminology
  2. Getting Started — Install and first run
  3. First Stream — Set up your first stream
  4. System Overview — High-level concepts

Intermediate (4-8 hours)

Comfortable with React and TypeScript? Go deeper:

  1. React Architecture
  2. State Management
  3. FFmpeg Integration
  4. Multi-Platform Tutorial

Advanced (8-16 hours)

Ready for implementation details and security?

  1. Security Architecture
  2. Services Layer
  3. Encryption Implementation
  4. Commands API

Table of Contents

Glossary

Architecture

Backend (Rust)

Frontend (React)

Streaming

API Reference

Tutorials

Deployment


Technology Stack

┌─────────────────────────────────────────────────────────────────────┐
│                     CLIENT LAYER                                     │
│  ┌──────────────────────────┐  ┌──────────────────────────┐        │
│  │     Tauri Desktop        │  │      Web Browser         │        │
│  │    (Embedded Webview)    │  │    (Remote Access)       │        │
│  └────────────┬─────────────┘  └────────────┬─────────────┘        │
│               │                             │                       │
│               └──────────────┬──────────────┘                       │
│                              │                                      │
├──────────────────────────────┼──────────────────────────────────────┤
│                     API LAYER│                                      │
│              HTTP/WebSocket API (Axum)                              │
│  ┌──────────────┐ ┌──────────────┐ ┌──────────────┐                │
│  │ POST /api/*  │ │   WS /ws     │ │  Static UI   │                │
│  └──────────────┘ └──────────────┘ └──────────────┘                │
├─────────────────────────────────────────────────────────────────────┤
│                     APPLICATION LAYER                                │
│                     Rust Services                                    │
│  ┌──────────────┐ ┌──────────────┐ ┌──────────────┐                 │
│  │ProfileManager│ │FFmpegHandler │ │  Encryption  │                 │
│  └──────────────┘ └──────────────┘ └──────────────┘                 │
├─────────────────────────────────────────────────────────────────────┤
│                     INFRASTRUCTURE                                   │
│  ┌──────────────┐ ┌──────────────┐ ┌──────────────┐                 │
│  │   FFmpeg     │ │  File System │ │   Crypto     │                 │
│  │  Processes   │ │   (Profiles) │ │ (AES-256)    │                 │
│  └──────────────┘ └──────────────┘ └──────────────┘                 │
└─────────────────────────────────────────────────────────────────────┘

Deployment Modes

Mode Use Case Setup
Desktop Local streaming with GPU acceleration Download installer
Docker Self-hosted on your server docker pull + compose
Cloud Managed service (future) Sign up

See Distribution Strategy for details.


Diagrams

All Mermaid diagrams use a dark theme:

  • Background: #0F0A14 (deep purple-black)
  • Primary: #7C3AED / #A78BFA (violet)
  • Text: #F4F2F7 (off-white)

Code References

Source code links use the format: filename.rs:line


Contributing

See Contributing Guide for documentation style and review process.