An open API service indexing awesome lists of open source software.

https://github.com/piterweb/libreremoteplay

โœจ Free and OpenSource Steam Remote Play ๐ŸŽฎ Alternative powered by WebRTC ๐ŸŒand Web APIs
https://github.com/piterweb/libreremoteplay

controller game-stream game-streaming gamepad gaming gaming-software golang libreremoteplay p2p pion remote remote-controller svelte sveltekit vigem wails webrtc windows-app windows-desktop xinput

Last synced: about 2 months ago
JSON representation

โœจ Free and OpenSource Steam Remote Play ๐ŸŽฎ Alternative powered by WebRTC ๐ŸŒand Web APIs

Awesome Lists containing this project

README

        

![LibreRemotePlay logo banner](https://github.com/user-attachments/assets/9173246d-1d65-4f29-bd79-0206250c538c)

# LibreRemotePlay
### An open source, free (as in freedom) and P2P alternative to Steam Remote Play

- Website ๐ŸŒ: https://libreremoteplay.vercel.app/

- Wiki ๐Ÿ“–: https://github.com/PiterWeb/LibreRemotePlay/wiki

- Discord Community ๐Ÿ‘ฅ: https://discord.gg/v7qd7nU3fJ

- Series of WebRTC Articles ๐Ÿ‘จโ€๐Ÿ’ป: https://dev.to/piterweb/series/30718

## Use cases โœจ

- Share your local co-op games online with friends (as [Steam Remote Play Together](https://store.steampowered.com/remoteplay?l=english#together))
- Stream your games from your PC to other devices (as [Steam Remote Play Anywhere](https://store.steampowered.com/remoteplay?l=english#anywhere))

## Download ๐Ÿ“ฆ

- https://github.com/PiterWeb/LibreRemotePlay/releases/latest

## Resources ๐Ÿ“š

- [Docs](./docs/) ๐Ÿ“˜
- [Linux Docs](./docs/LINUX.md) ๐Ÿ“˜
- [Wiki](https://github.com/PiterWeb/LibreRemotePlay/wiki) (Guides, FAQ, ...)
- [Discord Community](https://discord.gg/v7qd7nU3fJ)

### Videos ๐Ÿ“น
(Note that videos may show older/beta versions of the APP and could have bugs that are already fixed in the latest version)

#### How to use

https://github.com/user-attachments/assets/f4a412fa-f403-4429-85fb-9c1e74bff458

## Features ๐Ÿงฉ

- [x] Portable
- [x] Simple & Modern UI
- [x] Interactive Tutorial
- [x] Peer-to-Peer (WebRTC)
- [ ] Groups
- [x] Remote Video Streaming
- [ ] Video Quality Config
- [x] Browser Client
- [x] Localization (translation to multiple languages)
- [x] Support for custom STUN & TURN servers
- [ ] Keyboard
- [ ] Toogle Devices

### OS Support ๐Ÿ’ป

| Windows | Linux | MacOS | Browser (Only Client) |
|--------- |------- |------- |--------- |
| โœ” | โœ” | โŒ (No MacOS to test/develop) | โœ” (Known Issues with Safari) |

### Gamepad Support ๐ŸŽฎ

| PC Controller (XInput/DirectInput) | Xbox Controller (XInput) | PlayStation Controler
|--------- |------- |------- |
| โœ” | โœ” | โŒ (But you can achieve [emulating a Xbox Controller](https://github.com/Ryochan7/DS4Windows)) |

### Available Languages ๐Ÿ” 

| English | Spanish | Galician | Russian | French |Other languages |
|--------- |------- |------- | ------- | ------- | ------- |
| โœ” | โœ” | โœ” | โœ” | โœ” (@Zorkyx22) |โŒ› Looking for contributions

## Self Hosting โ˜

There is no way to self-host the infrastructure of LibreRemotePlay because it has no backend. But instead you can self-host if you want the TURN & STUN servers and then add them to the config.

- If you want to self-host a TURN/STUN server you can [try Coturn](https://github.com/coturn/coturn). (This is only an example, you can choose other STUN/TURN implementations)

- Also you can host the Web version (but it is only frontend, so is not very usefull)

## Run Dev

### Prerequisites

You must have [Task CLI](https://taskfile.dev/installation/), [Wails CLI](https://wails.io/docs/gettingstarted/installation#installing-wails), [NodeJS (~v20.x.x)](https://nodejs.org/en/download), [pnpm](https://pnpm.io/es/installation) and [Golang (min v1.22.4)](https://go.dev/doc/install) installed.

### How to

Go to the root project folder and run

- Full App :

`$ task dev-all`

- Frontend:

`$ task dev-front`

## Build

### Prerequisites

You must have [Task CLI](https://taskfile.dev/installation/), [Wails CLI](https://wails.io/docs/gettingstarted/installation#installing-wails), [NodeJS (~v20.x.x)](https://nodejs.org/en/download), [pnpm](https://pnpm.io/es/installation) and [Golang (min v1.22.4)](https://go.dev/doc/install) installed.

### How to

Go to the root project folder and run

- For general builds:

`$ task build`

- For Windows builds:

`$ task build-win`

- For Linux builds:

`$ task build-linux`

finally go to the build/bin folder and your executables will be there.

> [!Note]
> Please note the supported platforms in the table

## Contributting ๐Ÿค

If you are interested to contribute to this project you can follow this [guide](./CONTRIBUTING.md)

## Acknowledgements โค
These projects are making LibreRemotePlay a reality.

### Thanks to jbdemonte/virtual-device
[jbdemonte/virtual-device](https://github.com/jbdemonte/virtual-device) is the source of magic that enables LibreRemotePlay to generate virtual gamepads on Linux, is very fast and made in pure Go.
### Thanks to the ViGEm project
[ViGEmBus](https://github.com/nefarius/ViGEmBus) is the source of magic that enables LibreRemotePlay to generate virtual gamepads on Windows. We embed ViGEmBus Installation Wizard and ViGEmBus Client DLLS within the executable for Windows

### Thanks to Wails
[Wails](https://github.com/wailsapp/wails) makes easy creating desktop experiences using Go and Web tecnologies.

### Thanks to pion/webrtc
[Pion/Webrtc](https://github.com/pion/webrtc) is a implementation of WebRTC made in pure Go, it enables LibreRemotePlay to use WebRTC in a crossplatform way.

### Thanks to robotgo
[robotgo](https://github.com/go-vgo/robotgo) makes easy controling/simulating a keyboard (and anything related to desktop) using a simple syntax in Go.

## Did you like the project ๐Ÿ‘ ?
You can give us a star and join our [Discord Community](https://discord.gg/v7qd7nU3fJ), the project is always looking for feedback :)

## Star History
Here you can see how fast the community is growing


[![Star History Chart](https://api.star-history.com/svg?repos=PiterWeb/LibreRemotePlay&type=Timeline)](https://star-history.com/#PiterWeb/LibreRemotePlay&Timeline)