No description
Find a file
Cameron Gutman 8354c403f4 Optimize OpenSSL backend to avoid redundant reinitialization
It is best to pass as few parameters to EVP_*Init_ex() as possible.
Passing a key, IV, or cipher will cause redundant work to happen behind
the scenes as OpenSSL doesn't check whether they have actually changed.

This avoids a malloc()/free() and redoing AES key expansion for every
message that is encrypted and decrypted.
2021-04-22 17:34:48 -05:00
enet@d8976c4fcc Allow compilation on OSes without IPv6 support 2021-04-17 23:40:36 -05:00
reedsolomon Fix Clang warnings 2020-12-05 23:20:02 -06:00
src Optimize OpenSSL backend to avoid redundant reinitialization 2021-04-22 17:34:48 -05:00
.gitignore Ignore some Visual Studio-generated files 2014-10-25 21:39:17 -07:00
.gitmodules Change to our modified ENet fork 2016-03-06 15:29:02 -08:00
appveyor.yml AppVeyor build fixes 2021-04-17 23:59:47 -05:00
CMakeLists.txt Add workaround for false GCC warning in CI 2021-04-18 00:15:27 -05:00
LICENSE.txt Add missing license 2017-05-10 10:13:06 -07:00
README.md Update readme with new URL 2018-12-03 21:37:11 -08:00

Moonlight Streaming Core Library

Moonlight-common-c contains the core GameStream client code shared between Moonlight clients, including Moonlight PC, Moonlight Android, Moonlight iOS, and Moonlight Chrome.

If you are implementing your own Moonlight game streaming client that can use a C library, you probably want the code here.

Note to Developers

Moonlight-common-c requires the specific version of ENet that is bundled as a submodule. This version has changes required for IPv6 compatibility and retransmission reliability, among other things. These are breaking API/ABI changes which make Moonlight-common-c incompatible with other versions of the ENet library. Attempting to runtime link to another libenet library will cause your client to crash when connecting to recent versions of GeForce Experience.