Prerequisites
Before building TCP Streamer, ensure you have the following tools installed:Required Software
- Node.js v18 or later - Download from nodejs.org
- Rust latest stable version - Install from rust-lang.org
Platform-Specific Dependencies
- Linux (Ubuntu/Debian)
- macOS
- Windows
Install the required system libraries:These packages provide:
- GTK3 and WebKit2GTK for the UI
- AppIndicator for system tray support
- ALSA development libraries for audio
- Patchelf for binary patching
Building the Application
Clone the Repository
First, clone the TCP Streamer repository:Install Dependencies
Install Node.js dependencies:@tauri-apps/cli- Tauri command-line interface@tauri-apps/api- Tauri JavaScript API@tauri-apps/plugin-autostart- Auto-start functionality@tauri-apps/plugin-store- Settings persistencevite- Frontend build tool
Development Mode
Run the application in development mode with hot-reload:- Builds the Rust backend in debug mode
- Starts the Vite development server
- Launches the application with hot-reload enabled
- Watches for file changes in both frontend and backend
Production Build
Build the application for production:src-tauri/target/release/ and installers in src-tauri/target/release/bundle/.
Platform-Specific Build Output
- macOS
- Windows
- Linux
After building, you’ll find:
- Application Bundle:
src-tauri/target/release/bundle/macos/TCP Streamer.app - DMG Installer:
src-tauri/target/release/bundle/dmg/TCP Streamer_1.9.0_universal.dmg
Rust Dependencies
The Rust backend uses the following key dependencies (defined insrc-tauri/Cargo.toml):
- tauri (v2) - Application framework with tray icon support
- cpal (v0.15) - Cross-platform audio library for capturing audio
- ringbuf (v0.3) - Lock-free ring buffer for audio streaming
- socket2 (v0.5) - Low-level TCP socket operations
- serde & serde_json - Serialization/deserialization
- chrono - Date and time handling
- thread-priority - Thread priority management for reduced jitter
- tauri-plugin-autostart - Auto-start on system boot
- tauri-plugin-store - Settings persistence
- tauri-plugin-single-instance - Single instance enforcement
- tauri-plugin-log - Logging functionality