You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Binary communication is super duper performant as a communication style because it's as compact as can be. However it's also not something that's easy to do in a lot of languages.
For example - handling binary sent from stdin in JS is a pain in the butt.
I'd love to see an alternative specification that uses jsonlines as its message format. Whilst it is more IPC bytes sent/received - most languages have easily accessible JSON parsers and can easily construct objects from JSON.
It's also much easier to construct a plugin which does
"read line from stdin, parse json, action, json stringify response, write line to stdin"
rather than
"read 4 bytes from stdin, interpret as u32, read 4 bytes from stdin, interpret as u32, read 4 bytes from stdin, interpret as u32, read n bytes from stdin where n = last u32 read, read 4 bytes from stdin and assert it's [255,255,255,255], action, write 4 bytes to stdout........"
Another option that would maintain the binary format would be using a standardised, schema-backed binary format like protobuf/flatbuffers so that consumers can more easily generate the serialisation/deserialisation code rather than manually building and maintaining it.
The text was updated successfully, but these errors were encountered:
Binary communication is super duper performant as a communication style because it's as compact as can be. However it's also not something that's easy to do in a lot of languages.
For example - handling binary sent from stdin in JS is a pain in the butt.
I'd love to see an alternative specification that uses jsonlines as its message format. Whilst it is more IPC bytes sent/received - most languages have easily accessible JSON parsers and can easily construct objects from JSON.
It's also much easier to construct a plugin which does
"read line from stdin, parse json, action, json stringify response, write line to stdin"
rather than
"read 4 bytes from stdin, interpret as u32, read 4 bytes from stdin, interpret as u32, read 4 bytes from stdin, interpret as u32, read
n
bytes from stdin wheren
= last u32 read, read 4 bytes from stdin and assert it's[255,255,255,255]
, action, write 4 bytes to stdout........"Another option that would maintain the binary format would be using a standardised, schema-backed binary format like protobuf/flatbuffers so that consumers can more easily generate the serialisation/deserialisation code rather than manually building and maintaining it.
The text was updated successfully, but these errors were encountered: