Releases: zortos293/OpenNOW
Releases · zortos293/OpenNOW
OpenNOW v0.2.1
OpenNOW v0.2.1
Open source native GeForce NOW client built with Rust.
Changed
- Release artifacts are now packaged as ZIP archives for all platforms.
Downloads
- Windows x64: Portable executable with bundled FFmpeg DLLs
- Windows ARM64: Portable executable with bundled FFmpeg DLLs (Surface Pro X, etc.)
- macOS ARM64: Apple Silicon native binary with bundled FFmpeg dylibs (Intel Macs can use Rosetta 2)
- Linux x64: Portable binary (requires system FFmpeg - see below)
- Linux ARM64: Portable bundle with FFmpeg libs (run via
./run.sh)
Linux x64 users: Install FFmpeg via your package manager:
# Ubuntu/Debian
sudo apt install ffmpeg libavcodec-dev libavformat-dev libavutil-dev libswscale-dev
# Fedora/RHEL
sudo dnf install ffmpeg-free ffmpeg-free-devel
# Arch
sudo pacman -S ffmpegOpenNOW v0.2.0
OpenNOW v0.2.0
Open source native GeForce NOW client built with Rust.
Added
- Core Application: Initial release of the OpenNow Streamer application with windowing, input handling, and state management.
- Hardware Acceleration: Hardware-accelerated H.264, H.265, and AV1 video decoding with automatic GPU vendor detection.
- WGPU Renderer: High-performance GPU renderer for video frames and UI overlays using
wgpuandegui. - Audio Support: Added Opus audio decoder and
cpalaudio player featuring dynamic device switching and resampling. - WebRTC Integration: Built-in WebRTC streaming client components including peer connection and signaling.
- macOS Native Input: Implemented raw mouse input with event coalescing for macOS and Windows.
- Platform Features: Added D3D11VA zero-copy video for Windows and VideoToolbox optimizations for macOS.
- GFN Integration: Game catalog GraphQL API integration, proactively refreshing tokens, and CloudMatch API support.
- Session Management: Added session conflict detection with the ability to resume or claim existing GeForce NOW sessions.
- UI Screens: New GUI architecture including login screens, game session loading, and a comprehensive settings modal.
Changed
- Performance Optimizations: Optimized macOS rendering for a 60fps minimum, low-latency decoder flags, and a lock-free ring buffer for audio.
- Rendering Logic: Synchronized render FPS to match the video decode rate to reduce unnecessary CPU/GPU usage.
- macOS Bundling: Improved the macOS build process to create proper
.appbundles with updatedInfo.plistand library reference rewriting. - Refactoring: Modularized the codebase by splitting large files into dedicated modules for UI screens, RTP depacketizers, and application cache.
- Documentation: Updated README to reflect the native Rust implementation and detailed platform support.
- Build System: Updated FFmpeg dependencies to n7.1 for improved compatibility with
ffmpeg-next.
Fixed
- Raspberry Pi 5: Resolved Vulkan crashes and Out-Of-Memory (OOM) errors on RPi5 by adjusting device limits and memory hints.
- Controller Support: Fixed controller input issues by implementing the correct packet type and XInput formatting.
- Game Launch: Fixed a bug where games would fail to launch by ensuring pending game cache is saved before the launch flag is set.
- macOS Libraries: Resolved
@rpathdependency issues and implemented ad-hoc code signing for macOS builds. - CI/CD: Fixed various cross-platform compilation errors for Linux (VAAPI) and Windows (D3D12), and improved ARM64 build dependencies.
- Stability: Fixed unused import warnings and addressed recursion limits in
serde_jsonmacros.
Removed
- Removed
IMPLEMENTATION_PLAN.mddocumentation. - Removed the mouse input flush timer in favor of more efficient event handling.
Downloads
- Windows x64: Portable executable with bundled FFmpeg DLLs
- Windows ARM64: Portable executable with bundled FFmpeg DLLs (Surface Pro X, etc.)
- macOS ARM64: Apple Silicon native binary with bundled FFmpeg dylibs (Intel Macs can use Rosetta 2)
- Linux x64: Portable binary (requires system FFmpeg - see below)
- Linux ARM64: Portable bundle with FFmpeg libs (run via
./run.sh)
Linux x64 users: Install FFmpeg via your package manager:
# Ubuntu/Debian
sudo apt install ffmpeg libavcodec-dev libavformat-dev libavutil-dev libswscale-dev
# Fedora/RHEL
sudo dnf install ffmpeg-free ffmpeg-free-devel
# Arch
sudo pacman -S ffmpegOpenNOW v0.1.1
OpenNOW v0.1.1
Open source GeForce NOW client.
Added
- Alliance Partner Support: Improved compatibility for partners like Zain, including proper ICE server configuration and dynamic streaming URL handling.
- Error Handling Modals: New user-friendly modals for "Region Not Supported" and "Session Limit Exceeded" with tailored troubleshooting steps and retry options.
- Improved Loading States: Replaced placeholder elements with clean loading spinners across game grids for a smoother initial experience.
- Session Info: Added GPU Type display to the session settings panel.
- Installer Options: Windows installers now support both per-user and per-machine installation modes.
Changed
- Streaming Reliability: Refined session reconnection flow and WebRTC configurations to use real media ports and validated ICE candidates.
- Polling Logic: Simplified session polling to a consistent 2-second interval for more predictable behavior.
- UI/UX Cleanup: Removed input latency statistics from the streaming overlay and settings for a cleaner interface.
- Windows Compatibility: Enabled static CRT linking for Windows builds, removing the requirement for users to manually install the Visual C++ Redistributable.
- Provider Updates: Renamed "Brothers Pictures" login provider to "bro.game" for better recognition.
- Backend Refactoring: Standardized API responses to camelCase across Rust and TypeScript for better consistency.
- Optimized Assets: Enabled LZMA compression for Windows installers to reduce file size.
Fixed
- Windows Startup: Resolved "app can't run on your PC" errors on certain Windows environments by embedding necessary runtimes.
- Alliance Partner Sessions: Fixed
get_active_sessionsto correctly target partner-specific URLs rather than hardcoded production defaults. - Tauri 2.0 Compatibility: Updated NSIS configuration structure to meet Tauri 2.0 requirements.
- CI Workflow: Improved version parsing and validation in the build pipeline to ensure stable releases.
- General Stability: Addressed various code review feedback, improved error detection logic, and fixed unused variable warnings.
Downloads
- Windows x64:
.msior.exeinstaller - Windows ARM64:
.msior.exeinstaller (for ARM devices) - macOS:
.dmgdisk image (Universal - Intel + Apple Silicon) - Linux x64:
.debor.AppImage - Linux ARM64:
.debor.rpm(Raspberry Pi, ARM servers)
OpenNOW v0.0.24
OpenNOW v0.0.24
Open source GeForce NOW client.
Fixed
- Corrected inconsistent naming conventions in the codebase.
Downloads
- Windows x64:
.msior.exeinstaller - Windows ARM64:
.msior.exeinstaller (for ARM devices) - macOS:
.dmgdisk image (Universal - Intel + Apple Silicon) - Linux x64:
.debor.AppImage - Linux ARM64:
.debor.rpm(Raspberry Pi, ARM servers)
OpenNOW v0.0.23
OpenNOW v0.0.23
Open source GeForce NOW client.
Fixed
- Zain Alliance Partner connections: Resolved an issue where stale session storage prevented successful connections by ensuring the signaling URL is correctly passed from the frontend to the internal WebRTC configuration.
- Connection Stability: Improved internal tracing and debug logging for better troubleshooting of URL handling during the streaming handshake.
Downloads
- Windows x64:
.msior.exeinstaller - Windows ARM64:
.msior.exeinstaller (for ARM devices) - macOS:
.dmgdisk image (Universal - Intel + Apple Silicon) - Linux x64:
.debor.AppImage - Linux ARM64:
.debor.rpm(Raspberry Pi, ARM servers)
OpenNOW v0.0.22
OpenNOW v0.0.22
Open source GeForce NOW client.
Changed
- Improved session management by using the signaling URL directly from the API response for better connection reliability.
- Enhanced WebRTC configuration logic to better handle and validate various alliance partner network setups.
Fixed
- Fixed a connection issue with Zain alliance partners where the signaling URL was missing the required IP address.
- Added a fallback mechanism to use the server IP when a malformed signaling URL is detected.
Downloads
- Windows x64:
.msior.exeinstaller - Windows ARM64:
.msior.exeinstaller (for ARM devices) - macOS:
.dmgdisk image (Universal - Intel + Apple Silicon) - Linux x64:
.debor.AppImage - Linux ARM64:
.debor.rpm(Raspberry Pi, ARM servers)
OpenNOW v0.0.21
OpenNOW v0.0.21
Open source GeForce NOW client.
Added
- ARM64 Support: Added build targets for Windows and Linux ARM64, enabling compatibility with devices like the Raspberry Pi.
- Flatpak Support: Added Flatpak manifests for local testing and building from source with the GNOME SDK.
- Improved Fullscreen Exit: Added a visual circular progress indicator when holding the ESC key for 1 second to exit fullscreen.
- Keyboard Lock: Implemented the Keyboard Lock API to properly capture the ESC key while in fullscreen mode.
- MIT License: Official project licensing added.
Changed
- Mouse Input Refactor: Switched to a unified browser-based pointer lock system (similar to the official GFN client) for better cursor confinement and raw movement deltas.
- Performance Optimizations:
- Reduced streaming lag spikes caused by "garbage collection" pressure.
- Switched mouse polling to
requestAnimationFrameto sync input with high-refresh-rate monitors (120Hz+). - Reduced memory usage by disabling heavy console-to-backend logging forwarding.
- Persistence: User data (authentication and settings) now persists across app updates by moving files to a unified roaming folder.
- Codec Options: Added a hardware requirement warning to the AV1 codec option.
- Logging: Reduced frequency of input statistics logging to once per minute to minimize console noise.
Fixed
- Multi-Monitor Cursor Issues: Resolved cases where the mouse would escape the window or cause "jumps" during fullscreen gameplay.
- Alt-Tab Behavior: Improved reliability of re-entering fullscreen and re-locking the pointer when switching back to the app.
- Memory Leaks:
- Fixed a leak in the Raw Input mouse polling system.
- Resolved a leak in
liveEdgeIntervalby improving streaming state management. - Fixed fullscreen timeout stacking with proper cleanup.
- Platform-Specific Fixes:
- macOS: Corrected universal build targets and added troubleshooting for app quarantine issues.
- Windows: Hidden the unsupported H.265 codec option and fixed potential crashes related to RAWINPUT struct alignment.
- Linux: Skipped AppImage creation for ARM64 due to cross-compile limitations.
- Region Settings: Fixed a bug where the streaming region would reset to "auto" on app restart.
- Affiliate Providers: Resolved Zain affiliate subscription 404 errors and fixed "black screen" issues by updating signaling URL handling.
Downloads
- Windows x64:
.msior.exeinstaller - Windows ARM64:
.msior.exeinstaller (for ARM devices) - macOS:
.dmgdisk image (Universal - Intel + Apple Silicon) - Linux x64:
.debor.AppImage - Linux ARM64:
.debor.rpm(Raspberry Pi, ARM servers)
OpenNOW v0.0.20
OpenNOW v0.0.20
Open source GeForce NOW client.
Fixed
- Updated internal versioning to 0.0.19 across project configurations.
Downloads
- Windows:
.msior.exeinstaller - macOS:
.dmgdisk image - Linux:
.debor.AppImage
OpenNOW v0.0.19
OpenNOW v0.0.19
Open source GeForce NOW client.
Fixed
- Improved reliability of main games and library data loading.
Downloads
- Windows:
.msior.exeinstaller - macOS:
.dmgdisk image - Linux:
.debor.AppImage
OpenNOW v0.0.18
OpenNOW v0.0.18
Open source GeForce NOW client.
Added
- Logging System: Introduced a comprehensive logging system that writes to
%APPDATA%on Windows. Includes a custom file logger with auto-rotation, session markers, and unified frontend-to-backend error capturing. - Log Export & Privacy: Added a "Export Logs" feature in the Settings modal that automatically sanitizes sensitive data (JWTs, emails, IPs, and tokens) for safe debugging sharing.
- Alliance Partner Support: Added authentication and streaming support for GFN Alliance Partners (e.g., GFN.AM), including automatic provider persistence and specialized API endpoints.
- Queue Management: Added a queue position display in the streaming overlay and navigation for free tier users to track wait times.
- Queue Status Command: New
get_queue_statuscommand for the frontend to query real-time queue states.
Changed
- Server Discovery: Updated server fetching to use the
/v2/serverInfoendpoint, fixing an issue where incorrect display names caused launch failures. - Free Tier Restructuring: Restricted free tier streaming to 1080p and 120 FPS or below. Improved queue polling with adaptive intervals (shorter intervals when nearing the front of the line).
- Persistent Settings: Enabled
enable_persisting_in_game_settingsto allow game configurations to save across sessions. - Tech Stack Migration: Migrated from npm/Vite to Bun and Rolldown-Vite for faster bundling and improved development performance.
- API Communication: Refactored API calls to use
tauriFetchfrom the@tauri-apps/plugin-httpplugin for better environment compatibility. - Rust Compatibility: Updated syntax to support Rust 2024 (unsafe extern blocks).
Fixed
- Launch Failures: Resolved an issue where sessions failed to start due to incorrect server subdomain mapping.
- Queue Timeouts: Fixed a bug where session polling would time out prematurely for free tier users waiting in long queues.
- Binary Dependencies: Added missing
@tauri-apps/plugin-httpdependency to ensure networking functionality.
Removed
- Unused Code: Cleaned up the codebase by removing deprecated authentication logic (
generate_state,extract_auth_code), unused streaming types, and legacy GraphQL queries.
Downloads
- Windows:
.msior.exeinstaller - macOS:
.dmgdisk image - Linux:
.debor.AppImage