-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
Using a casual RPC protocol in nix-daemon? #4655
Comments
Same about communicating with remote storage. |
And remote builders |
what protocol is currently used? |
Ad-hoc one, mainly length encoded things. |
server example: Lines 777 to 787 in 61bb1e2
client example: nix/src/libstore/remote-store.cc Lines 785 to 791 in 61bb1e2
I'd also say it is a hard job to have all those code pieces in sync, especially for authors of 3rd-party client software. |
I have one of the commands extended with an additional parameter, and it broke compatibility with mainline Nix. And I have to be careful not to run mainline Nix daemon with modified Nix client (or vice versa), because it could crash the daemon (which runs as root) |
an easier way might be just using a proper serialization format, e.g. CBOR. |
Exactly. |
See #4665, I think that should happen first. Better structuring the code with the legacy protocol, and having just one legacy protocol (!), will free up our developer time and complexity budgets to do a big overhaul like this. |
Would this be appropriate for 3.0 or 4.0 in the roadmap? |
Not fully adopted |
I'm against potentially cancelling |
ssh-ng is easier to keep because it is one we basically get "for free" from the daemon protocol. If we did a fancier thing, we would want to keep that where we can reuse the same protocol on a number of different transports. |
I marked this as stale due to inactivity. → More info |
It's still relevant. |
What about using a casual RPC protocol (GRPC, Thrift, or something) to communicate with nix-daemon?
It would improve readability of the code and simplify development of alternative clients.
The text was updated successfully, but these errors were encountered: