The official Stremio desktop app runs on Electron-style WebViews backed by a separate Node.js server (server.js). At idle it spawns 10 processes and holds 800+ MB of RAM.
Stremio Native replaces all of that with a single Rust binary and a native Slint UI:
- 🚀 Instant Startup — launches in under a second with zero UI lag.
- 💧 56% Less RAM — 358 MB idle vs. the 814 MB official baseline.
- ⚡ 1 Process Instead of 10 — an open-source stream server runs in-process; no Node.js required.
- 🔋 Battery-Friendly — GPU hardware video decoding keeps CPU usage near 0% during playback.
- 🔒 100% Local & Private — local SQLite database, zero telemetry, no cloud dependencies.
See the changelog for the current build's implementation notes and known limitations.
| Platform | Format | Link |
|---|---|---|
| Windows | Installer | StremioSetup-v1.0.4-x64.exe |
| Windows | Updater ZIP | stremio-native-v1.0.4-x86_64-pc-windows-msvc.zip |
| Arch Linux | Pacman .pkg.tar.zst |
stremio-native-1.0.4-1-x86_64.pkg.tar.zst |
| Debian / Ubuntu | .deb |
stremio-native_1.0.4-1_amd64.deb |
| Fedora / RHEL | .rpm |
stremio-native-1.0.4-1.fc44.x86_64.rpm |
| Linux | Standalone binary | stremio-native-v1.0.4-x86_64-unknown-linux-gnu |
| Metric | Official Stremio | Stremio Native | Improvement |
|---|---|---|---|
| Processes | 10 | 1 | 90% fewer |
| Idle memory (RAM) | 814.4 MB | 358.6 MB | 56% lower |
| Idle CPU | — | 0.19% | near-zero |
| Threads | 190 | 72 | 62% fewer |
| Handles | 4,872 | 891 | 82% fewer |
Measured on Windows x64 from the settled, idle v1.0.0 release process. CPU and I/O are five-second samples; other values are point-in-time readings. The official baseline was captured from a corresponding settled Stremio session. This is an observational comparison, not a controlled laboratory benchmark.
- Fixed Sidebar Navigation — vertical sidebar with hover labels for Board, Discover, Library, Calendar, Addons, and Settings.
- Catalog Split Preview — clicking a media card opens a side-panel with blurred poster backdrops, cast, genres, and metadata without leaving the catalog.
- Episode & Stream Picker — real-time episode search, capsule season switching, thumbnails, release dates, watched indicators, and a stream-provider sheet with back-navigation.
- No External Dependencies — eliminates the separate Node.js
server.jsprocess. The stream engine runs asynchronously inside the Rust async runtime. - Hardware-Accelerated Playback — powered by
libmpvwith full GPU hardware decoding (H.264, HEVC, AV1, VP9).
- Skia OpenGL UI — Slint 1.17.1 runs explicitly on the
winitbackend with theskia-openglrenderer and negotiates the highest desktop OpenGL version exposed by the driver (OpenGL 4.6 on current Intel/NVIDIA drivers). MPV renders into double-buffered RGBA textures only after Skia has flushed the UI frame, then Skia composites the borrowed video texture on the next frame. - Anime4K and FSR Hooks — shader presets remain in MPV's multipass GLSL hook pipeline. Custom shaders require desktop OpenGL 3.3 or newer.
- Graceful GPU Fallback — OpenGL ES and older desktop contexts continue plain MPV playback while shader choices are disabled with a detected-version explanation. The saved preference is restored after a capable context is recreated.
- Persistent Secondary libmpv Decoder — timeline previews use a paused, software-decoding MPV client in the same process on Windows and Linux. No standalone
mpv.exe, Lua IPC, sockets, temporary images, or PNG decoding are required. - Fast Then Exact Seeking — the worker prewarms after a video loads, coalesces rapid cursor movement, shows a nearby keyframe first, and refines it with an exact frame after the cursor settles.
- Fixed Resource Budget — exact RGBA frames use a 16 MiB LRU cache and the decoder remains paused when the timeline is not being hovered. Previews are enabled by default and can be disabled immediately under Player settings.
- Playback-First Fallback — live/non-seekable streams and audio-only media continue playing without previews. Thumbnail frames intentionally omit subtitles, Anime4K, FSR, and other main-player overlays.
- Single Database File — all settings, history, and metadata live in
./storage/stremio.db(Turso/Limbo engine). - Zero Telemetry — no tracking, analytics, or phone-home connections.
- Windows: Rust toolchain (
msvc), Visual Studio 2022 C++ Build Tools with the x64 MSVC v143 toolset, a Windows SDK, and LLVM/Clang for native dependencies. Release builds use the dynamic MSVC CRT (/MD) while vcpkg libraries remain static. - Linux: Rust,
pkg-config,libmpv-dev, and standard X11/Wayland GUI packages (see the CI workflow for the full list).
git clone https://github.com/perpetus/stremio-native.git
cd stremio-native
cargo run --release --package stremio-nativeBefore the first Windows build, install the manifest dependencies with the project triplet so the static native libraries use the same dynamic CRT as Rust and Skia:
& "$env:VCPKG_ROOT\vcpkg.exe" install `
--x-manifest-root="$PWD" `
--x-install-root="$PWD\vcpkg_installed" `
--triplet=x64-windows-v3-static-md-release `
--overlay-triplets="$PWD\triplets" `
--overlay-ports="$PWD\vcpkg-overlays"cargo build then discovers that exact installation through the repository's
Cargo configuration. Do not substitute x64-windows-static: that triplet uses
the static /MT CRT and is incompatible with the /MD Skia build.
Settings, logs, and image caches are stored in ./storage/ inside the project directory.
On Windows, setup/create_setup.cmd runs scripts/stage_windows_msvc_runtime.ps1 for both fresh and SKIP_BUILD=1 builds. The script copies the newest x64 Microsoft.VC143.CRT DLLs beside the packaged app, validates runtime imports with dumpbin, and writes a SHA-256 manifest. This app-local deployment supports the project's per-user, non-admin installer.
Timeline previews reuse the same packaged libmpv library as the main player. Building or running the application does not depend on the implementation-reference checkout under docs/thumbfast.
Pushing a v* tag builds both Windows and Linux and publishes a GitHub release automatically. Windows release builds target the x64-windows-v3-static-md-release triplet (x86-64-v3 / /arch:AVX2, static native libraries, dynamic CRT) for broad CPU compatibility. The release includes installers, portable archives, Linux packages, SHA-256 checksums, changelog notes, and a linked commit diff.
The timeline preview scheduler is based on the interaction and seek strategy of ThumbFast, licensed under the Mozilla Public License 2.0. The source notice, referenced Lua snapshot hash, and license are recorded in licenses/thumbfast.
Stremio Native is an independent, community-developed project. It is not affiliated with, authorized, maintained, sponsored, or endorsed by SmartCode Ltd (the creators of the official Stremio application).
