Self-hosted game stream host for Moonlight.
Go to file
Cathy J. Fitzpatrick 3cc12dfbe7
macOS: New implementation of service publication (#2786)
The current implementation of service publication on macOS uses
`avahi-client`, but the majority of macOS machines do not have Avahi
installed because macOS provides a native alternative (`mDNSresponder`),
meaning that there is no reason to install Avahi.

The current implementation also attempts to load the Avahi client
libraries using `dlopen(3)`, which has a variety of restrictions on
macOS, such as only being willing to load from certain directories.
Depending on where the Avahi binaries are installed, they might not
be loadable through the current invocation of `dlopen(3)`.

Instead of using an Avahi client on macOS, it makes more sense to use
the native macOS API for publishing services via `mDNSresponder`. This
commit supplies such an implementation that uses the macOS native API.
It also has the advantage of being much simpler than the previous
implementation. Furthermore, this new implementation works on all
macOS machines, because it relies only on native APIs, rather than on
third-party software that is not commonly installed on macOS.
2024-07-07 15:19:51 +00:00
.github ci(flatpak): add flatpak builder lint (#2799) 2024-07-07 10:19:11 -04:00
cmake ci(flatpak): add flatpak builder lint (#2799) 2024-07-07 10:19:11 -04:00
docker build(docs): add cmake target for docs (#2748) 2024-06-24 16:12:31 +00:00
docs macOS: New implementation of service publication (#2786) 2024-07-07 15:19:51 +00:00
gh-pages-template docs(website): add clients section (#2791) 2024-07-02 01:13:14 +00:00
packaging macOS: New implementation of service publication (#2786) 2024-07-07 15:19:51 +00:00
scripts build(deps): bump babel from 2.14.0 to 2.15.0 (#2504) 2024-05-14 11:11:56 -04:00
src macOS: New implementation of service publication (#2786) 2024-07-07 15:19:51 +00:00
src_assets New Crowdin updates (#2792) 2024-07-02 08:57:27 -04:00
tests docs(src): add examples alias and general cleanup (#2763) 2024-06-28 08:34:14 -04:00
third-party build(deps): bump third-party/inputtino from 93a81cb to f8f5a81 (#2766) 2024-06-29 01:39:01 +00:00
tools docs(src): add examples alias and general cleanup (#2763) 2024-06-28 08:34:14 -04:00
.clang-format
.codeql-prebuild-cpp-Linux.sh build(docs): add cmake target for docs (#2748) 2024-06-24 16:12:31 +00:00
.codeql-prebuild-cpp-macOS.sh build(docs): add cmake target for docs (#2748) 2024-06-24 16:12:31 +00:00
.codeql-prebuild-cpp-Windows.sh docs: use doxygen directly and drop breathe (#2739) 2024-06-24 22:14:27 +00:00
.dockerignore
.flake8
.gitattributes ci(flatpak): add flatpak builder lint (#2799) 2024-07-07 10:19:11 -04:00
.gitignore refactor(ui): break down config.html into smaller pieces (#2491) 2024-05-13 13:08:13 -04:00
.gitmodules build(flatpak): remove org.flatpak.Builder.BaseApp (#2798) 2024-07-02 23:35:06 +00:00
.prettierrc.json
.readthedocs.yaml docs: use doxygen-awesome-css (#2758) 2024-06-26 14:44:32 +00:00
.rstcheck.cfg
CMakeLists.txt ci(flatpak): add flatpak builder lint (#2799) 2024-07-07 10:19:11 -04:00
codecov.yml ci: use prerelease logic (#2553) 2024-05-23 21:42:06 -04:00
crowdin.yml
DOCKER_README.md ci: use prerelease logic (#2553) 2024-05-23 21:42:06 -04:00
LICENSE
NOTICE
package.json build(deps): bump vue from 3.4.30 to 3.4.31 (#2767) 2024-07-01 14:49:49 +00:00
README.rst docs: update badges (#2716) 2024-06-18 00:06:00 +00:00
sunshine.icns
sunshine.ico
sunshine.png
sunshine.svg
toolchain-mingw64.cmake
vite.config.js

Overview
========
LizardByte has the full documentation hosted on `Read the Docs <https://sunshinestream.readthedocs.io/>`__.

About
-----
Sunshine is a self-hosted game stream host for Moonlight.
Offering low latency, cloud gaming server capabilities with support for AMD, Intel, and Nvidia GPUs for hardware
encoding. Software encoding is also available. You can connect to Sunshine from any Moonlight client on a variety of
devices. A web UI is provided to allow configuration, and client pairing, from your favorite web browser. Pair from
the local server or any mobile device.

System Requirements
-------------------

.. warning:: This table is a work in progress. Do not purchase hardware based on this.

**Minimum Requirements**

.. csv-table::
   :widths: 15, 60

   "GPU", "AMD: VCE 1.0 or higher, see: `obs-amd hardware support <https://github.com/obsproject/obs-amd-encoder/wiki/Hardware-Support>`_"
   "", "Intel: VAAPI-compatible, see: `VAAPI hardware support <https://www.intel.com/content/www/us/en/developer/articles/technical/linuxmedia-vaapi.html>`_"
   "", "Nvidia: NVENC enabled cards, see: `nvenc support matrix <https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new>`_"
   "CPU", "AMD: Ryzen 3 or higher"
   "", "Intel: Core i3 or higher"
   "RAM", "4GB or more"
   "OS", "Windows: 10+ (Windows Server does not support virtual gamepads)"
   "", "macOS: 12+"
   "", "Linux/Debian: 11 (bullseye)"
   "", "Linux/Fedora: 39+"
   "", "Linux/Ubuntu: 22.04+ (jammy)"
   "Network", "Host: 5GHz, 802.11ac"
   "", "Client: 5GHz, 802.11ac"

**4k Suggestions**

.. csv-table::
   :widths: 15, 60

   "GPU", "AMD: Video Coding Engine 3.1 or higher"
   "", "Intel: HD Graphics 510 or higher"
   "", "Nvidia: GeForce GTX 1080 or higher"
   "CPU", "AMD: Ryzen 5 or higher"
   "", "Intel: Core i5 or higher"
   "Network", "Host: CAT5e ethernet or better"
   "", "Client: CAT5e ethernet or better"

**HDR Suggestions**

.. csv-table::
   :widths: 15, 60

   "GPU", "AMD: Video Coding Engine 3.4 or higher"
   "", "Intel: UHD Graphics 730 or higher"
   "", "Nvidia: Pascal-based GPU (GTX 10-series) or higher"
   "CPU", "AMD: todo"
   "", "Intel: todo"
   "Network", "Host: CAT5e ethernet or better"
   "", "Client: CAT5e ethernet or better"

Integrations
------------

.. image:: https://img.shields.io/github/actions/workflow/status/lizardbyte/sunshine/CI.yml.svg?branch=master&label=CI%20build&logo=github&style=for-the-badge
   :alt: GitHub Workflow Status (CI)
   :target: https://github.com/LizardByte/Sunshine/actions/workflows/CI.yml?query=branch%3Amaster

.. image:: https://img.shields.io/github/actions/workflow/status/lizardbyte/sunshine/localize.yml.svg?branch=master&label=localize%20build&logo=github&style=for-the-badge
   :alt: GitHub Workflow Status (localize)
   :target: https://github.com/LizardByte/Sunshine/actions/workflows/localize.yml?query=branch%3Amaster

.. image:: https://img.shields.io/readthedocs/sunshinestream.svg?label=Docs&style=for-the-badge&logo=readthedocs
   :alt: Read the Docs
   :target: http://sunshinestream.readthedocs.io/

.. image:: https://img.shields.io/codecov/c/gh/LizardByte/Sunshine?token=SMGXQ5NVMJ&style=for-the-badge&logo=codecov&label=codecov
   :alt: Codecov
   :target: https://codecov.io/gh/LizardByte/Sunshine

Support
-------

Our support methods are listed in our
`LizardByte Docs <https://lizardbyte.readthedocs.io/en/latest/about/support.html>`__.

Downloads
---------

.. image:: https://img.shields.io/github/downloads/lizardbyte/sunshine/total.svg?style=for-the-badge&logo=github
   :alt: GitHub Releases
   :target: https://github.com/LizardByte/Sunshine/releases/latest

.. image:: https://img.shields.io/docker/pulls/lizardbyte/sunshine.svg?style=for-the-badge&logo=docker
   :alt: Docker
   :target: https://hub.docker.com/r/lizardbyte/sunshine

.. image:: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2Fipitio%2Fghcr-pulls%2Fmaster%2Findex.json&query=%24%5B%3F(%40.owner%3D%3D%22LizardByte%22%20%26%26%20%40.repo%3D%3D%22Sunshine%22%20%26%26%20%40.image%3D%3D%22sunshine%22)%5D.pulls&label=ghcr%20pulls&style=for-the-badge&logo=github
   :alt: GHCR
   :target: https://github.com/LizardByte/Sunshine/pkgs/container/sunshine

.. image:: https://img.shields.io/badge/dynamic/json.svg?color=orange&label=Winget&style=for-the-badge&prefix=v&query=$[-1:].name&url=https%3A%2F%2Fapi.github.com%2Frepos%2Fmicrosoft%2Fwinget-pkgs%2Fcontents%2Fmanifests%2Fl%2FLizardByte%2FSunshine&logo=microsoft
   :alt: Winget Version
   :target: https://github.com/microsoft/winget-pkgs/tree/master/manifests/l/LizardByte/Sunshine

Stats
------
.. image:: https://img.shields.io/github/stars/lizardbyte/sunshine.svg?logo=github&style=for-the-badge
   :alt: GitHub stars
   :target: https://github.com/LizardByte/Sunshine