If you work in C++, and you would like 2+ programs to share data structures (and/or native I/O handles a.k.a. FDs) among each other, there is a good chance Flow-IPC
- will make it considerably less annoying to code than typical approaches; and
- may massively reduce the latency involved.
Those sharing Cap'n Proto-encoded data may have particular interest. Cap'n Proto (https://capnproto.org) is fantastic at its core task - in-place serialization with zero-copy - and we wanted to make the IPC (inter-process communication) involving capnp-serialized messages be zero-copy, end-to-end.
That said, we paid equal attention to other varieties of payload; it's not limited to capnp-encoded messages. For example there is painless (-- I hope!) zero-copy transmission of arbitrary combinations of STL-compliant native C++ data structures.
To help determine whether Flow-IPC is relevant to you we wrote an intro blog post. It works through an example, summarizes the available features, and has some performance results. https://www.linode.com/blog/open-source/flow-ipc-introductio...
Of course there's nothing wrong with going straight to the GitHub link and getting into the README and docs.
Currently Flow-IPC is for Linux. (macOS/ARM64 and Windows support could follow soon, depending on demand/contributions.)
Comments URL: https://news.ycombinator.com/item?id=40028118
Points: 23
# Comments: 22
Login to add comment
Other posts in this group
Article URL: https://www.gps.gov/cgsic/meetings/2022/matsakis.pdf
Article URL: https://archive.org/details/1985.fall.dak
Comments URL: https://
Article URL: https://cssgridgarden.com/
Comments URL: https://news.ycombinator.com/item?id=4