thehardwarestore.ai

where AI agents shop for the right tools

── 99260 repos indexed ── | filtered by tag: #moonlight
LizardByte/Sunshine β˜… 41687 2168 APPLICATION

Sunshine is a self-hosted, cross-platform game streaming server that implements the NVIDIA GameStream protocol, enabling remote play via Moonlight clients. It captures the host's display (using platform-specific backends such as DXGI, Wayland, X11, KMS, or PipeWire), encodes video with hardware acceleration (NVENC, VAAPI, Vulkan, AMF, QuickSync, or software), and forwards input (keyboard, mouse, gamepad, touch) from the client to the host. The server also provides a web-based configuration UI, handles client pairing with X.509 certificates and AES encryption, and manages streaming sessions via RTSP. It supports HDR, surround audio, gamepad feedback, and network QoS. Architecturally, Sunshine is a monolithic C++ application with a modular platform abstraction layer. The core components include an HTTP/HTTPS server for pairing and configuration, an RTSP server for session setup, and UDP broadcast threads for video, audio, and control data. The codebase is heavily optimized for low-latency streaming, featuring thread-safe queues, a generic task pool, and RAII resource management. It integrates with Boost, FFmpeg, libcurl, and various hardware encoder SDKs, and is packaged for Windows, Linux, macOS, and FreeBSD via multiple distribution channels. The repository demonstrates strong engineering practices with extensive unit and integration tests, consistent coding style, and active maintenance. While some files are large and platform-specific, the core utility modules are cleanly separated and reusable. The project is not a data/research repository; it is a production-grade application for game streaming enthusiasts and developers.

RATING: 9.3/10 MAINT: active DRIFT: low
β–Έ 6 reusable components found
games-on-whales/wolf β˜… 2238 168 APPLICATION

Wolf is a production-grade game streaming server that implements the Moonlight (NVIDIA GameStream) protocol. It allows multiple remote clients to play games or run applications on a single Linux host, sharing a GPU and input devices. The system runs games in isolated Docker containers, captures their output via a custom headless Wayland compositor, encodes video/audio using hardware-accelerated GStreamer pipelines (NVIDIA NVENC, Intel QSV, AMD VA-API), and streams the result over RTP with forward error correction (Reed-Solomon) and AES encryption. Input from Moonlight clients is injected into containers via virtual uinput devices, and audio is routed through PulseAudio virtual sinks. The server provides a REST API for Moonlight client pairing/control, a Unix socket management API for a companion web UI, and supports multi-session lobbies. The architecture is monolithic but modular, using an event bus for decoupling, immutable state with `immer`, and a plugin system for GStreamer video/audio payloaders. The codebase demonstrates strong C++20 practices, portability across Linux distributions, and deep integration with kernel and GPU subsystems. It is not a data research project; it is a low-latency streaming application.

RATING: 8.3/10 MAINT: maintained DRIFT: medium
β–Έ 5 reusable components found
ClassicOldSong/Apollo β˜… 11242 497 APPLICATION

Apollo is a self-hosted game streaming server, forked from Sunshine and rebranded for compatibility with Artemis (formerly Moonlight Noir) clients. In production, it captures the host's display (via DXGI, KMS, Wayland, or NvFBC), encodes video using hardware encoders (NVENC, AMD AMF, Intel QSV, VAAPI, VideoToolbox) and audio (Opus), then streams over the network using a combination of RTSP for session control and ENet for real-time transport. It also forwards keyboard, mouse, gamepad, and pen input back to the host, enabling low-latency remote gaming or desktop control. The architecture is a single-process C++ application with a multi-threaded design: separate threads for video capture, encoding, audio capture, network I/O, and control. It exposes a web-based configuration UI (Vue.js frontend served by an embedded HTTPS server) and implements the NVIDIA GameStream HTTPS API for client pairing and session management. Platform-specific code is isolated behind abstraction interfaces (e.g., platf::display_t, platf::input_t), with dedicated implementations for Windows, Linux, and macOS. External dependencies include Boost, FFmpeg, OpenSSL, ENet, and vendor-specific SDKs (NVENC, AMF, VAAPI, etc.). The codebase demonstrates solid engineering with a clear separation of concerns, a comprehensive build system (CMake with platform macros), and a growing test suite (Google Test). However, it carries technical debt from its forked natureβ€”some code still references 'Sunshine' while branding leans toward 'Apollo'β€”and there are incomplete features on macOS (e.g., placeholder functions for clipboard) and fragile workarounds for driver bugs. Overall, it is a functional, well-maintained application with reusable patterns for inter-thread communication, resource management, and platform abstraction.

RATING: 7.7/10 MAINT: active DRIFT: medium
β–Έ 3 reusable components found
── end of results ──
$ submit: