No description
Find a file
KhooLy a2e85be74c Release expanded-poster trailer player when playback stops
Each once-focused card kept its ExoPlayer instance alive until the card
left composition, so scrolling a shelf accumulated idle decoders. Release
on stop caps live trailer players at one.
2026-07-02 00:46:36 +03:00
app Release expanded-poster trailer player when playback stops 2026-07-02 00:46:36 +03:00
bench Initial commit 2026-06-05 14:43:08 +03:00
build-logic Make cards skippable and stop focus-driven card rebuilds 2026-07-02 00:44:22 +03:00
gradle Make cards skippable and stop focus-driven card rebuilds 2026-07-02 00:44:22 +03:00
.gitignore Initial commit 2026-06-05 14:43:08 +03:00
build.gradle.kts Initial commit 2026-06-05 14:43:08 +03:00
gradle.properties Initial commit 2026-06-05 14:43:08 +03:00
gradlew Initial commit 2026-06-05 14:43:08 +03:00
gradlew.bat Initial commit 2026-06-05 14:43:08 +03:00
README.md Initial commit 2026-06-05 14:43:08 +03:00
settings.gradle.kts Initial commit 2026-06-05 14:43:08 +03:00

Fluxa

Contributors Forks Stars Issues License

A native Android media hub powered by a platform-agnostic Rust core.
Stremio addon ecosystem · Mobile & Android TV


What is Fluxa?

Fluxa is a content discovery and playback app for Android. It connects to the Stremio addon ecosystem, letting you browse catalogs, track your watch history, and play media from any source those addons expose.

The Android shell handles all platform I/O — HTTP, Room, ExoPlayer, audio, notifications — but the actual decision-making lives in fluxa-core, a headless Rust library that runs the same logic across Android and desktop targets. Rust never touches the network directly; it emits typed effects that the Kotlin layer fulfills.

Requires Android 8.0+ (API 26). Android TV / Google TV supported.


Installation

Download the latest release from GitHub Releases.

Two APK variants are available:

Variant Package Target
mobile com.fluxa.app.mobile Phone & tablet
tv com.fluxa.app.tv Android TV / Google TV

Each variant ships per-ABI splits: arm64-v8a, armeabi-v7a, x86_64, x86.


Architecture

Fluxa is split into two native Rust libraries and an Android Kotlin shell:

┌─────────────────────────────────────────────────────────┐
│                  Android (Kotlin + Compose)              │
│   UI · ViewModel · Repository · OkHttp · Room · Player  │
├───────────────────────────┬─────────────────────────────┤
│      fluxa_core           │    fluxa_streaming_engine    │
│  Headless brain: state,   │  Video proxy, Dolby Vision   │
│  policy, stream planning  │  rewrite, torrent engine     │
└───────────────────────────┴─────────────────────────────┘

The Effect Loop

Rust never calls the network. Instead it emits typed effects that Kotlin executes:

Kotlin  →  dispatch(action)
        ←  { state, effects: [{ id, type, payload }] }
Kotlin  →  executes each effect (OkHttp / Room / audio / ...)
        →  completeEffect({ effectId, result })
        ←  { state, effects: [...] }

This keeps fluxa_core fully portable — the same crate compiles for Android (JNI), desktop (native Rust), and future targets (WASM) without any platform-specific code inside Rust.


Project Structure

Fluxa/
├── app/          ← Android application module
├── core/         ← Shared Kotlin modules
├── player/       ← Player module
└── build-logic/  ← Convention plugins

Development

git clone https://github.com/KhooLy/Fluxa.git
cd Fluxa
./gradlew :app:assembleMobileDebug
# or for TV
./gradlew :app:assembleTvDebug

The Rust libraries ship as prebuilt .so files bundled with the project. Rebuilding fluxa_core or fluxa_streaming_engine from source requires a Rust toolchain with the Android NDK targets installed.


Built With


Fluxa is a client-side interface that connects to user-installed Stremio addons. It does not host, serve, or distribute any media content. All streams are sourced from third-party addons chosen by the user.

Fluxa is not affiliated with any addon developer, repository, or content provider. Users are responsible for ensuring they have the right to access any content they stream or download.