People keep asking how Rhubarb actually works, so here's the long answer. We've kept the jargon out wherever we could.
Watching when you're not at home
This is the part we're proudest of, because it's usually the worst part of running your own media server. Normally you'd log into your router, forward a port, maybe set up a VPN, and then try to explain all of that to your parents.
With Rhubarb you turn on one setting, Connect to Rhubarb, and that's it. Your server checks in with us, and from then on you can reach it from anywhere.
When someone presses play, we put their phone or TV in touch with your server, and then we're out of the picture. The video goes straight from your server to them, encrypted the whole way. It never passes through us, so there's no quality cap and nothing for us to see. It works on most home internet connections without touching the router. A few networks are locked down too tightly for it, and if yours is one of them, Rhubarb will tell you.
Sharing with family and friends
Open someone's profile on your server and copy their invite link. Send it by text, email, whatever. When they open it, they sign in with their Google or Apple account and your library is right there.
They don't need your server's address or a new password. On a computer they don't install anything, and on iPhone and Apple TV there's an app. If you change your mind, remove them and they lose access straight away.
You decide who sees what
Everyone you share with gets their own profile, and you choose exactly what's on it. Give your parents the movies but not your anime, give your nephew only the kids' library, or share everything with your partner. New libraries stay private to you until you share them.
Each profile can have an age rating limit, so a kids' profile only ever shows what's suitable, in the guide, in search and on library channels too. Everyone keeps their own watch history, their own list and their own audio language. If you use Plex, Rhubarb can copy who has access to what, so you don't have to set it all up again.
Turn your library into TV channels
Remember coming home, turning on the TV and just watching whatever was on? Rhubarb brings that back with your own collection. Make a channel for 90s sitcoms, Saturday morning cartoons, or an all-night horror marathon, and Rhubarb fills the schedule for the whole day with a proper guide, like cable used to have.
It takes away the chore of picking something. No more scrolling for twenty minutes and giving up. You flip through the channels, land halfway through a movie you forgot you owned, and you're hooked. Everyone who tunes in sees the same thing at the same time, just like real TV.
You can still pause, jump back, or start a show from the beginning. Channels follow each profile's age limits, so kids get their own lineup. And if you really want to relive it, Rhubarb can play old TV commercials in the breaks.
We wrote the video engine ourselves
This bit is a little nerdy, but it's why Rhubarb feels different. Most media servers hand the heavy lifting to the same open-source toolkit, and that toolkit works one way: when something about a file doesn't suit your device, the whole movie gets converted on the server. That's what makes your server's fans spin up, what makes a 4K movie look soft, and what makes the progress bar sit there loading.
We wrote our own, in Rust, so we could avoid converting almost all of the time. A few examples of where other servers convert and we don't:
- Files your device won't open. Lots of devices won't open an MKV file, even when the video inside is something they play fine. Other servers often convert it. Our player reads the file itself, so the original video plays untouched.
- Surround sound. Web browsers can't play most cinema soundtracks, so other servers convert the sound, and sometimes the video along with it. We decode the sound on your device instead, and your server does nothing.
- Blu-ray and DVD subtitles. These are pictures, not text, so other servers usually burn them into the video, which means converting the entire movie just to show subtitles. We draw them on your screen, so the movie plays as it is.
- HDR on an ordinary screen. The colour conversion can happen on your device instead of on the server.
When converting really can't be avoided, it runs on our own decoders and encoder, which cover everything from DVDs and old TV recordings to 4K HDR. Every decoder is checked frame by frame against the reference, so what you see matches what's in the file. It doesn't need a graphics card, and it spreads the work across every core of your processor.
For you that means a better picture, less waiting, and a server that stays quiet. And because the code is ours, when something doesn't play right, we can fix it ourselves.
Sound the way it was mixed
Most servers squash a movie's soundtrack down to stereo so a web browser can play it. Rhubarb doesn't. In a browser, the full surround track is decoded right there on your device, so you keep every channel and your server doesn't do any work.
On Apple TV it goes further. The soundtrack reaches your receiver or soundbar uncompressed, in its original format, height channels included. If you have ceiling or up-firing speakers, they get used the way the mix intended. Plenty of players quietly flatten that down to plain surround. Ours doesn't.
HDR on a screen that doesn't support it
If you've ever played a 4K HDR movie on an ordinary screen and it looked grey and flat, that's because nobody converted the colours. Rhubarb does, for every common HDR format, so the movie looks right on an older TV or a laptop. If your screen supports HDR, Rhubarb leaves it alone.
Subtitles
Blu-ray and DVD subtitles are actually pictures, and anime subtitles often come with their own fonts and colours. Rhubarb shows them as they were made instead of turning them into plain text. If a movie has no subtitles, you can search for some from the player.
Live TV
If you have an HDHomeRun antenna tuner, Rhubarb gives you a channel guide, captions and a choice of audio language. It also keeps the volume even between channels, so ads don't blast you. Your antenna channels and your library channels sit side by side in the same guide.
Bringing over your Plex setup
Sign in to Plex once and Rhubarb copies your libraries, who has access to which ones, and everyone's watch history, in a few minutes. Nobody has to set anything up again or remember where they were in a show.
Why Rust
Rust is a programming language that runs as fast as C, the language most video software is written in, without C's biggest weakness. Here's what that gets you.
Safer files. Video files are a favourite way to attack media software, because a deliberately broken file can trick a program into reading or writing memory it shouldn't. Rust checks for that whole class of mistake before the program is even built, so a bad file gets turned away instead of turning into a crash or a break-in.
Every core, no glitches. Splitting video work across all of your processor's cores is where a lot of subtle bugs come from. Rust won't build the program if two parts could step on each other's data, so we can use every core without the random stutters and crashes that usually come with it.
Smooth and light. There's no garbage collector pausing things to clean up memory, so playback doesn't hiccup, and the server uses very little memory when nobody is watching.
One program, everywhere. The same code builds for Windows, Mac, Linux and NAS boxes, on Intel, AMD and ARM chips. It's even how our sound decoders run inside your web browser: it's the same Rust code, built for the browser.
If you want to try it, everything you need is on the download page.