The desktop client (Tauri + Rust). Both builds are produced here: EON Stream and EON Edu.
cargo tauri build # EON Stream
cargo tauri build --no-default-features --features edu # EON Edu
The Edu build does not hide the open marketplace, arbitrary addon URLs, or open BitTorrent access. They are excluded at compile time — not present in the binary (madde 22). The Edu module manager loads only modules signed with the Edu key, and the application id, update channel and signing key are separate.
Cargo features are additive and easy to leak. CI runs a symbol and string check against the Edu binary and fails the release if a forbidden symbol appears. This matters because the guarantee given to an institution rests on it (madde 32b): "absent at compile time" has to be verifiable by someone who does not trust us.
There is no window yet, and that is the plan rather than a shortfall. The whole alpha
line is a terminal program: every piece is proven at a prompt first, so that when there is
an interface it sits on work that already works. The interface is the last thing added, at
v1. A half-generated Tauri scaffold committed now would rot and would hide which
decisions are actually made (madde 2).
What the current build does, today, from a prompt:
| Addons | add by URL, list, remove, order, enable, refresh, configure, discover, health |
| Browsing | catalogues, search, pagination, metadata, episodes, eon:// deep links |
| Playback | mpv over JSON IPC — HTTP, HLS, DASH, local files, and BitTorrent |
| Torrents | sequential download, loopback HTTP server, prebuffer, file selection, progress |
| Subtitles | from addons, matched by name, hash and size, loaded into the running player |
| History | resume where you left off, continue-watching, next episode, same release |
| Modules | install, update, remove, enable, order, dependencies, signature verification |
| Themes | declarative, no code, with a WCAG contrast report |
| Settings | persisted, typed, and auditably free of anything that reports anywhere |
| Updates | signed release manifests, downgrades refused, revocation applied |
| Language | Turkish and English, lang tr |
Against the eight items of the v1 definition-of-done: 2, 3, 4, 5, 6 and 7 are done; 8 is done apart from the interface it describes; 1 is done apart from packaging and signing.
One thing refuses to work, by design. install installs nothing, because this build
trusts no signing keys — no key in the hierarchy exists yet (madde 30). The mechanism is
complete and exercised; see the note in CHANGELOG.md
for how to mint one and watch the chain run.
eon-stream-app (this repo)
src-tauri/ Rust: window, IPC commands, module host, build profiles
src/ frontend: interface, themes, declarative module rendering
|
+-- eon-stream-core module manager, addon protocol, signatures
+-- eon-stream-engine torrent, local HTTP server, mpv IPC
v1 plays through mpv as a separate process (madde 2). Controls live in the EON Stream window, video in the mpv window. Embedding libmpv in a single window is a later slice; if it never lands, v1 behaviour stands.
See docs/architecture.md.
Windows and Linux, single-file installer, signed, auto-updating. Stremio-compatible addon resolution, mpv playback, subtitles, resume. Add addons by URL. Sequential torrent streaming. Module manager with signature verification. Declarative themes. Compatibility suite green. Turkish and English, meeting a baseline accessibility bar (madde 35).
What is left between here and v1: the interface, the installer, and the signing keys.
Not in v1: marketplace, accounts, creator tools, material packages, music, mobile, code-executing plugins, Edu.
- No telemetry. Not off-by-default — absent. Crash reporting, if it ever exists, is opt-in and shows the user what would be sent (madde 36).
- No bundled content source or addon. Ever (madde 9).
- Signing keys are never committed.
.gitignoreblocks the usual extensions; that is a safety net, not a policy. - Accessibility is a release gate, not a later polish item: full keyboard operation, screen-reader-usable core flows, WCAG AA contrast, scalable text (madde 35).
rustup show # toolchain pinned in rust-toolchain.toml
npm install
cargo tauri devSystem requirements: a Tauri v2 toolchain (WebView2 on Windows, WebKitGTK on Linux) and mpv
on PATH for playback.
GPL-3.0-or-later WITH the EON Module ABI Exception 1.0 — LICENSE,
LICENSE-EXCEPTION.md. Read NOTICE before distributing
anything that bundles mpv or FFmpeg.
eon-stream-core · eon-stream-engine · eon-stream-spec · eon-edu-server · eon-docs