[GH-ISSUE #300] Difference between Wolf and Sunshine #210

Closed
opened 2026-10-15 12:58:14 +00:00 by bsakaguchi · 2 comments
Owner

Originally created by @leomeneguzzi on GitHub (Nov 25, 2025).
Original GitHub issue: https://github.com/games-on-whales/wolf/issues/300

Hello, I just met Sunshine (https://github.com/LizardByte/Sunshine)

And looking into Wolf, it says that it is a server compatible with Moonlight.

Wolf has some "relation" with Sunshine?
Also, why don't make a fork from Sunshine?

(I'm not blaming, the project seems great, I'm just curious to understand more about core decisions around the project)

Originally created by @leomeneguzzi on GitHub (Nov 25, 2025). Original GitHub issue: https://github.com/games-on-whales/wolf/issues/300 Hello, I just met Sunshine (https://github.com/LizardByte/Sunshine) And looking into Wolf, it says that it is a server compatible with Moonlight. Wolf has some "relation" with Sunshine? Also, why don't make a fork from Sunshine? (I'm not blaming, the project seems great, I'm just curious to understand more about core decisions around the project)
bsakaguchi 2026-10-15 12:58:14 +00:00
Author
Owner

@ABeltramo commented on GitHub (Nov 25, 2025):

Ciao Leonardo! 👋

You aren't the first one to ask about this, I feel that I've answered it a lot of times but from a quick glance at our Discord server and the docs I don't think I've ever put together a proper reply, so I'm going to do it here (and later turn it into a doc page probably).

There are both historical and technical reasons why Wolf isn't just a fork. I'll skip over the historical reasons (maybe I'll expand on those on another post) and focus more on the tech side.

High level overview

First off, Wolf and Sunshine should be seen as two different tools for two different use cases:

Wolf

  • Support multiple independent users sharing a single machine
  • Can run in a completely headless environment with no desktop installed (and no monitor plugged)
  • Can spin up additional virtual desktops even when there's a desktop installed with no overlap in inputs
  • Tightly coupled with containers: everything runs as Docker images
  • Linux only

Sunshine

  • Streams your full desktop, you aren't limited by Docker in terms of what works (or how you set your environment)
  • More developers, older, battle tested, easier to install/use
  • Multiplatform (Win/OSX/Linux)

Tech differences

The main reason why we can't just be a fork is because Sunshine supports only single sessions. There's a lot of logic (and code) that needs to be changed in order to support multiple independent audio/video streams, independent and non overlapping inputs (mouse, kb, joypads) and so on.
Admittedly it has been a long time since I've looked at the code, but I don't think it has changed much..

And since this isn't a fork it allowed us to use a completely different tech stack:

  • Gstreamer instead of FFMPEG for the audio/video pipelines
  • We embed a custom micro Wayland compositor for spinning up virtual desktops and directly pipe the framebuffer into our video encoding pipeline (recently achieving a true low latency zero copy pipeline)
  • Deep integration with Docker so that we can spin up and down containers on-demand, isolate input devices and even achieve hotplug

Things in common

Although we are two very different projects I've contributed to Sunshine where I could. My main contribution is definitely inputtino: a Linux library that allows you to easily create and manage virtual input devices (mouse, kb, joypads, ...).
Both Wolf and Sunshine (on Linux only) use that as the main library for handling input.


I'm probably forgetting a lot of things, but I feel that I've covered enough high-level details about this, hopefully this answers your question!

<!-- gh-comment-id:3577524694 --> @ABeltramo commented on GitHub (Nov 25, 2025): Ciao Leonardo! 👋 You aren't the first one to ask about this, I feel that I've answered it a lot of times but from a quick glance at our Discord server and the docs I don't think I've ever put together a proper reply, so I'm going to do it here (and later turn it into a doc page probably). There are both historical and technical reasons why Wolf isn't just a fork. I'll skip over the historical reasons (maybe I'll expand on those on another post) and focus more on the tech side. ## High level overview First off, Wolf and Sunshine should be seen as two different tools for two different use cases: ### Wolf - Support multiple independent users sharing a single machine - Can run in a completely headless environment with no desktop installed (and no monitor plugged) - Can spin up additional virtual desktops even when there's a desktop installed with no overlap in inputs - Tightly coupled with containers: everything runs as Docker images - Linux only ### Sunshine - Streams your full desktop, you aren't limited by Docker in terms of what works (or how you set your environment) - More developers, older, battle tested, easier to install/use - Multiplatform (Win/OSX/Linux) ## Tech differences The main reason why we can't just be a fork is because Sunshine supports only **single sessions**. There's a lot of logic (and code) that needs to be changed in order to support multiple independent audio/video streams, independent and non overlapping inputs (mouse, kb, joypads) and so on. Admittedly it has been a long time since I've looked at the code, but I don't think it has changed much.. And since this isn't a fork it allowed us to use a completely different tech stack: - Gstreamer instead of FFMPEG for the audio/video pipelines - We embed a custom [micro Wayland compositor](github.com/games-on-whales/gst-wayland-display) for spinning up virtual desktops and directly pipe the framebuffer into our video encoding pipeline (recently achieving a [true low latency zero copy pipeline](https://abeltra.me/blog/road-to-zero-copy-in-wolf/)) - Deep integration with Docker so that we can spin up and down containers on-demand, isolate input devices and even [achieve hotplug](https://abeltra.me/blog/docker-hotplug/) ## Things in common Although we are two very different projects I've contributed to Sunshine where I could. My main contribution is definitely [inputtino](https://github.com/games-on-whales/inputtino): a Linux library that allows you to easily create and manage virtual input devices (mouse, kb, joypads, ...). Both Wolf and Sunshine (on Linux only) use that as the main library for handling input. --- I'm probably forgetting a lot of things, but I feel that I've covered enough high-level details about this, hopefully this answers your question!
Author
Owner

@leomeneguzzi commented on GitHub (Nov 25, 2025):

Thanks a lot, after I did the question, I noticed some repos and Docker images mentioning sunshine, which made me even more confused hahaha

But I got it!
I'm considering testing Wolf soon; it seems to be a great tool. I've been using Sunshine for years now, locked on Windows, but I'm hardly considering migrating to Linux, and Wolf comes as a glove for the experience that I'm looking for. I want to test it on my Proxmox (using APU).

If I could transform my actual PC gamer into part of my Proxmox cluster and use the idle time to another stuff will be great! (Maybe add some k8s orchestration? would be awesome!)

Also, already happened that I want to play at the same time my wife is playing hahaha.

Anyway, it's a great project, and it will be a long-term project to integrate it properly into my home setup. I hope that I can find gaps to collaborate with the project. I'm bored with the everyday need to deal with the same boring web development code.

<!-- gh-comment-id:3577702468 --> @leomeneguzzi commented on GitHub (Nov 25, 2025): Thanks a lot, after I did the question, I noticed some repos and Docker images mentioning sunshine, which made me even more confused hahaha But I got it! I'm considering testing Wolf soon; it seems to be a great tool. I've been using Sunshine for years now, locked on Windows, but I'm hardly considering migrating to Linux, and Wolf comes as a glove for the experience that I'm looking for. I want to test it on my Proxmox (using APU). If I could transform my actual PC gamer into part of my Proxmox cluster and use the idle time to another stuff will be great! (Maybe add some k8s orchestration? would be awesome!) Also, already happened that I want to play at the same time my wife is playing hahaha. Anyway, it's a great project, and it will be a long-term project to integrate it properly into my home setup. I hope that I can find gaps to collaborate with the project. I'm bored with the everyday need to deal with the same boring web development code.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
games-on-whales/wolf#210
No description provided.