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 its Add-ons system, to play movies, TV series and channels instantly.
stremio-core
is a rust crate that's designed to contain all the reusable logic between Stremio versions.
types
can be used by add-onsContext
model to manage the user authentication/addons, using it as a backbone to the entire Stremio apptypes
addon_transport
- handles communication with add-ons, implements legacy protocol adapterstate_types
: types that describe application state; inspired by the Elm architecture
runtime
: helps using stremio-core
in an application by handling the effects automaticallyenvironment
: a trait describes the environment (fetch, storage)msg
: messages: actions, eventsmodels
: all stateful models, such as Context
(handling user authentication, add-ons), Library
, CatalogFiltered
, etc.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.wasm
and 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