Skip to content

Instantly share code, notes, and snippets.

@Ivshti
Last active June 11, 2019 14:16
Show Gist options
  • Save Ivshti/a4f9951b42fe789410decbad8f3dea38 to your computer and use it in GitHub Desktop.
Save Ivshti/a4f9951b42fe789410decbad8f3dea38 to your computer and use it in GitHub Desktop.
Announcing stremio-core: embracing open-source and Rust

What is stremio-core

Stremio-core is a project to create a code library that contains all the common logic between Stremio apps: the add-on system, integration with our API, library/notifications and others.

It will allow us (and others, more on that later!) to develop Stremio faster with less bugs, because of the shared code between all apps. It can also enable porting Stremio to new platforms more easily.

Embracing Rust

Since stremio-core has to be portable and correct (as bugless as possible), we've chosen Rust for the job.

Rust is a modern programming language started by Mozilla, describing itself as a language empowering everyone to build reliable and efficient software.

Rust is gaining popularity very quickly, and it's been voted "the most loved programming language" by Stack Overflow for a third year in a row.

But why is it a good fit for us? We've always used JavaScript for most of Stremio. Why? Cause JavaScript is expressive enough to allow quick development, and is very portable: it's used on the web, on servers with nodeJS, and even on iOS/Android with React Native. Well, Rust is even more portable, and more expressive, but it's very different to JS in a good way: it's strongly typed. This allows us to develop and refactor software without that much fear of breaking things.

Open-source everything!

At Stremio, we're huge fans of open-source software. We currently have over 40 public repositories on GitHub, which includes the addon SDK (stremio-addon-sdk), multiple core libraries (stremio-aggregators, stremio-addon-client, etc.), example add-ons and many more. You can even use stremio-shell to build Stremio for platforms we don't officially support (for example, 32bit Linux or Raspberry pi).

stremio-core will be open-source too, and licensed under the permissive MIT license. This will open up many possibilities, including community maintained apps for Android TV, Xbox, Playstation, Raspberry pi, etc.

Other than stremio-core, we will also open-source a new web UI, stremio-web, built using React and stremio-core. It will enable connecting Stremio to your own local streaming server so you can enjoy your favorite content in the browser.

Both stremio-core and stremio-web will be made available on GitHub by the end of 2019!

What does this mean for development?

As you already know, Stremio is extremely flexible: it's content can be pretty much anything that the add-ons deliver. The latest add-on competition implemented use cases that were beyond our imagination (e.g. books, news).

This means it's also extremely complicated. It took us a while to finalize a lot of specifications on how Stremio should work in detail. This is why stremio-core is a long term investment: we've been busy with crystallizing the inner workings of Stremio over the last year, in order to:

  • be able to easily port Stremio to other platforms
  • be able to develop new features easily without fear of breaking something

That said, we still have another few months of development time before being able to use stremio-core in all our apps.

If you'd like to submit feedback on what we should focus on, please vote on our user quiz.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment