⚛️ The Stremio Core: types, addon system, UI models, core logic
Stremio is a full-featured media center designed to help you organize and stream your favorite videos, movies and TV series. It will notify you for new episodes / movies, and allow you to find new content through Discover.
Stremio allows, using it's Add-ons system, to play movies, TV series and channels instantly.
stremio-coreis a rust crate that's designed to contain all the reusable logic between Stremio versions.
typescan be used by add-ons
Contextmodel to manage the user authentication/addons, using it as a backbone to the entire Stremio app
types
addon_transport- handles communication with add-ons, implements legacy protocol adapter
state_types: types that describe application state; inspired by the Elm architecture
runtime: helps using
stremio-corein an application by handling the effects automatically
environment: a trait describes the environment (fetch, storage)
msg: messages: actions, events
models: all stateful models, such as
Context(handling user authentication, add-ons),
Library,
CatalogFiltered, etc.
Also see: * https://github.com/stremio/stremio-players * https://github.com/Stremio/labs/issues/20
cargo clippy cargo fmt
WASM output binary can get large, especially if we derive Serialize/Deserialize in places we don't need to
We can optimize it by running twiggy:
twiggy top ..._bg.wasmand seeing what the biggest code size offenders are
Defining actions and what middleware requests they should trigger is defined in
src/state_types/msg/actions