-
Notifications
You must be signed in to change notification settings - Fork 167
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Where can i find the reference for nv gamestream protocol? #67
Comments
The Nvidia GameStream protocol is proprietary. There is no reference documentation. Our implementation is based on reverse engineering. The best public reference is this repository, Moonlight clients like https://github.com/moonlight-stream/moonlight-embedded, and Moonlight-compatible hosting software like https://github.com/loki-47-6F-64/sunshine |
@cgutman sunshine is poorly documented and the code is a mess. The best documentation anyone can provide is some hand written notes that no one can understand. On top of that Loki is no longer involved in the project, or just ignoring the entire project. The project is hanging on by a thread. In my opinion, it would be very beneficial for moonlight to document the protocol. This article (https://www.writethedocs.org/guide/writing/beginners-guide-to-docs/) describes many reasons why it's a good idea to document your project. I started a thread on the discord, but never received a response. Seems you are the all knowing one on the protocol, so documenting it should be an effort led by you although I'm sure many are willing to assist. For example, I'd be willing to setup the sphinx documentation framework and integrations with github. I understand that having the code itself somewhat serves as documentation; however it's pretty difficult to read through. One major issue with it is it expects the person trying to understand the protocols understands C/C++ or whatever language the code was written in. For example, I want to investigate writing a python based host for moonlight. Currently my only options are to reverse engineer moonlight, or reverse engineer sunshine (which in itself reverse engineered moonlight). Documenting the protocol has been asked for a lot, ideally it would be in human readable terms. For example the documentation of pairing would describe:
The protocol documentation should also describe how to handle things on the both the client and host side. For example with a discovery request, a moonlight client will require different requests as compared to the host. Other related issues: |
I recently started my quest into the depts of the Moonlight protocol, I'm trying to re-write Sunshine in a more readable, documented and (possibly) tested form. So far I "only" got the pairing phase and I would really like to get some kind of high level overview of the code components, how they work together and what are the expected inputs/outputs. Would anyone from the Moonlight team be willing to share the knowledge? [EDIT] |
Yes, I can try to fill in details if you can create a doc template or something. There are 6 main protocols involved in the current GameStream protocol version:
For the first 3, doc templates designed for HTTP-based protocols should work. The latter 3 will probably need templates designed for binary protocols (something like this) |
As the title means, does the protocol is free to use and open to public? I cannot find more infomation on NV web.
The text was updated successfully, but these errors were encountered: