• Stars
    star
    943
  • Rank 48,453 (Top 1.0 %)
  • Language
    Rust
  • License
    MIT License
  • Created almost 6 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

⚛️ The Stremio Core: types, addon system, UI models, core logic

Stremio - the next generation media center

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

stremio-core is a rust crate that's designed to contain all the reusable logic between Stremio versions.

Goals

  • Flexibility - can be integrated into existing code bases, across the entire stack, and in different paradigms
    • use case: types can be used by add-ons
    • use case: can be used with existing user authentication as an addition to an existing app
    • use case: can use the Context model to manage the user authentication/addons, using it as a backbone to the entire Stremio app
  • Emphasis on correctness
  • No cruft / legacy - not burdened by obsolete decisions & solutions

Modules

  • types
  • addon_transport - handles communication with add-ons, implements legacy protocol adapter
  • state_types: types that describe application state; inspired by the Elm architecture
    • Effects and Update traits
    • runtime: helps using stremio-core in 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.
cargo clippy
cargo fmt

Optimizing WASM output

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

Adding new actions

Defining actions and what middleware requests they should trigger is defined in src/state_types/msg/actions

More Repositories

1

stremio-web

Stremio - Freedom to Stream
JavaScript
1,145
star
2

stremio-shell

🐚 Qt5-based shell for Stremio; compile this to run the desktop app
C++
551
star
3

stremio-addon-sdk

🧙 A Node.js SDK for creating and publishing Stremio add-ons
JavaScript
373
star
4

stremio-addons

OBSOLETE; GO TO https://github.com/stremio/stremio-addon-sdk
JavaScript
136
star
5

stremio-service

Rust
120
star
6

server-docker

Builds and publishes Docker image for new releases of server.js
Dockerfile
112
star
7

stremio-translations

🌍 Translation strings used in the Stremio app
JavaScript
97
star
8

stremio-features

Post Feature requests in Issues here
77
star
9

stremio-bugs

🐛 Post bug reports in Issues here
52
star
10

addon-helloworld

👋 Hello World add-on for Stremio
JavaScript
29
star
11

stremio-beamup-cli

CLI for deploying to Beam Up servers
JavaScript
16
star
12

enginefs

simple layer to use and manage P2P streaming engines - used in Stremio
JavaScript
13
star
13

addon-helloworld-python

Python
13
star
14

stremio-beamup

🛠️ A platform as a service (PaaS) hosting for Stremio addons: as easy a Heroku, without the restrictions
HCL
12
star
15

stremio-core-web

Bridge between stremio-core and stremio-web
Rust
12
star
16

stremio-local-addon

Add-on for stremio (using v3 protocol) meant to be ran locally which indexes locally found torrent and video files
JavaScript
11
star
17

stremio-official-addons

All the stremio official add-ons, in an array of AddonDescriptors
JavaScript
10
star
18

stremio-api-client

Facilitates the connection between the stremio-api and Stremio, with extras such as user/add-on sync and persistence.
JavaScript
9
star
19

stremio-core-kotlin

Rust
9
star
20

stremio-php-addon-example

PHP Add-on Example for Stremio
PHP
9
star
21

stremio-chromecast-receiver

Chromecast Receiver application for Stremio
JavaScript
9
star
22

stremio-brand

🖌️ Stremio branding materials/assets
8
star
23

stremio-dice

Experiment: a page to show a random movie
JavaScript
7
star
24

vlc-android-sdk

libvlc for android
Dockerfile
7
star
25

stremio-catalog-builder

A website that allows users to personalise their Stremio catalogs.
JavaScript
6
star
26

stremio-addon-client

Client library for using stremio addons (v3 protocol)
JavaScript
5
star
27

stremio-igdb-addon

Stremio Add-on for Video Game Trailers / Gameplays from IGDB.com
JavaScript
5
star
28

addon-helloworld-go

Helloworld addon implemented in Go
Go
5
star
29

stremio-addon-guide

Guides for making Stremio add-ons
JavaScript
4
star
30

stremio-static-addon-example

Static Add-on Example for Stremio
4
star
31

stremio-video

Abstraction layer on top of different media players
JavaScript
4
star
32

stremio-seed-poc

stremio-core + stremio-web CSS + seed
Rust
3
star
33

addon-helloworld-express

Hello World add-on for Stremio made with Express
JavaScript
3
star
34

stremio-art

Community Art for Stremio
3
star
35

stremio-addon-with-key

Example of an addon protected with keys
JavaScript
3
star
36

addon-helloworld-java

Stremio add-on example in java
Java
3
star
37

stremio-local-files

[OBSOLETE] Local stremio addon to scan local video files and provide them to Stremio
JavaScript
3
star
38

addon-helloworld-csharp

C#
2
star
39

addon-helloworld-ruby

Ruby addon example for stremio
Ruby
2
star
40

get-tracks-data

Get video / audio / subtitles tracks from MKV and MP4 files.
TypeScript
1
star
41

stremio-core-validator

Stremio JSON Schema Validator
Rust
1
star
42

local-search

Rust
1
star
43

stremio-colors

Color pallet for all stremio clients
JavaScript
1
star
44

stremio-search-community-addons

HTML
1
star
45

ytdl-core-blob

Webpacked ytdl-core to remove node 10 dependency
JavaScript
1
star
46

stremio-express-static-addon

Stremio Express Add-on Example
JavaScript
1
star
47

stremio-aggregators

Aggregates catalogs and streams from all stremio add-ons passed to it
JavaScript
1
star