# parsec-sdk **Repository Path**: fllffl/parsec-sdk ## Basic Information - **Project Name**: parsec-sdk - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-07-21 - **Last Updated**: 2021-07-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## Overview The Parsec SDK allows your application to make interactive, low-latency peer-to-peer connections for the purpose of game streaming. The SDK handles the low level internals of peer-to-peer connectivity, networking, and hardware accelerated video/audio processing. It is lightweight, consisting of a [single header file](/sdk/parsec.h) and a shared object < 5MB. #### Hosting The `ParsecHost` portion of the SDK allows a host to accept incoming client connections (guests). There are two modes of operation: **game mode** and **desktop mode**. Game mode allows your game to add multiplayer functionality to an otherwise local only game. This is achieved via a tight integration into your game's render loop. Game mode requires that the application call one of the `ParsecHostSubmitFrame` functions (supporting OpenGL, D3D9, and D3D11) and `ParsecHostSubmitAudio`. Input is polled via `ParsecHostPollInput`, exposing input events much like they would appear locally. In game mode, Parsec can only interact with your game and has no access to the OS or any other application. Additionally, game mode can be used to make any game entirely headless from the host's point of view. The game window, rendering swap chain, and audio playback can be removed, leaving the game to accept input from and invisibly output data to Parsec connected guests. Desktop mode shares the host's entire desktop (or any fullscreen application) and adds additional permissions/approval to the connection process. #### Client The `ParsecClient` portion of the SDK provides everything necessary to make a connection to a host, send gamepad/mouse/keyboard input, and receive video/audio output from the host. The `ParsecClientRender` family of functions allow the client application to efficiently render the incoming frames with OpenGL, D3D9, D3D11, or Metal. ## Examples #### Game Mode Hosting with Unity The Parsec SDK provides the [ParsecUnity](/sdk/ParsecUnity) module for easy integration in Unity games. See [examples/unity](/examples/unity) for details. #### Windows, macOS, Linux Clients The [client](/examples/client) example demonstrates the most complete implementation of the client SDK. It uses the cross platform [libmatoya](https://github.com/matoya/libmatoya) library to handle window creation, rendering, audio playback, and input handling. Windows, macOS, and x86-64 Linux are supported. #### iOS and Android Clients The [ios](/examples/ios) and [android](/examples/android) examples demonstrate audio playback, rendering, and basic input capabilities of the client SDK. The Android example provides a simple JNI bindings package to expose a subset of the C API in Java. #### Desktop Mode Hosting The [host](/examples/host) example is a succinct implementation of desktop hosting functionality. Desktop hosting is currently only available on Windows. #### Web Client The Parsec Web SDK provides a fully wrapped Parsec client interface only requiring a `