-
Notifications
You must be signed in to change notification settings - Fork 22
Open
Description
ht's API is an RPC-style newline-delimited JSON sent over stdin/stdout. This reminds me strongly of varlink, an IPC standard used by systemd and podman (the docker alternative). The biggest difference is that varlink uses null-byte-delimited JSON rather than newline-delimited JSON, and usually uses Unix sockets instead of stdin/stdout (so that many clients can connect at once).
What could be gained?
- Instead of maintaining a list of supported methods in project README, with "this method returns XYZ" / "this method doesn't return", you could maintain a varlink IDL file
- Streaming support, so that clients don't have to poll
getView - Error messages by setting the
errorfield in reply JSON - varlink CLI and systemd-varlinkctl CLI may make scripting and debugging easier
- Autogenerated correct clients in many languages
- Introspection - every varlink server has to reply to
GetInfoandGetInterfaceDescriptionmessages. This makes it easy for clients to see if a server version is new enough to support some new methods.
Note
This is an opinionated suggestion, feel free to disregard.
mcint
Metadata
Metadata
Assignees
Labels
No labels