[HN Gopher] Flow-IPC: Open-source toolkit for low-latency inter-...
___________________________________________________________________
Flow-IPC: Open-source toolkit for low-latency inter-process
communication in C++
Author : signa11
Score : 51 points
Date : 2024-04-11 09:15 UTC (2 days ago)
(HTM) web link (www.linode.com)
(TXT) w3m dump (www.linode.com)
| ygoldfeld wrote:
| Whoa. I'm the lead developer on this - I got to this post totally
| by accident: was googling for my own Show HN post about this from
| a couple days ago - and it took me here without my noticing.
|
| There's some discussion on it in Show HN, and of course I can
| answer anything here that people might be interested in too. I'm
| very proud of it and very grateful Akamai gave the resources to
| open-source it.
|
| I'd like to have a flashier friendlier site with a slick intro
| video - haven't had the time to do that stuff - but the substance
| and API documentation + Manual are very serious and complete, I
| hope.
|
| All linked off the blog-post!
| ygoldfeld wrote:
| (Akamai owns Linode and uses the blog on Linode.com as a
| developer-oriented blog. So that's why the link is to there.)
| signa11 wrote:
| i have done something exactly identical at my current place of
| employment, and am always inquisitive to see how others have
| 'stacked-da-cat'.
|
| we _unfortunately_ gravitated towards protobuf's despite my
| fervent appeal to go with capn-proto. that has caused a cascade
| of troubles / missed opportunities for optimizations etc. etc.
| fwsgonzo wrote:
| I tried to migrate to capn-proto but it just doesn't build on
| MinGW so I have no choice but to wait. Like you say, it gets
| worse the more I wait. But, if the APIs are somewhat sane,
| they should hopefully also be somewhat similar: Able to
| switch case on oneofs, movable data structures etc.
|
| I don't like that protobuf has recently started linking with
| abseil, which despite being a good framework, I can't use it
| if it doesn't build absolutely everywhere I need it to. So,
| maybe I'll be forced over to CapnProto one of these days?
| sgtnoodle wrote:
| I've also developed a strikingly similar low latency real-
| time IPC message bus for work. It also uses sockets with
| transparent shared memory optimization. In my case, it's the
| backbone for an autonomous aircraft's avionics. I made
| everything agnostic to the message scheme, though, and most
| of the tooling supports an in-house schema, protobuf, JSON,
| YAML, etc. There's also clients implemented in C++, Rust,
| Python and Julia.
|
| What troubles has protobuf caused you?
| nonane wrote:
| Cool stuff!
|
| Does Flow-IPC protect against malformed messages? For example a
| client sending malformed messages to a server process
| sgtnoodle wrote:
| Given that it's shared memory based, it seems like there has
| to be some degree of trust that the participants are well
| behaved. What do you mean by a malformed message, though? If
| you're talking about the payload of the message, that seems
| like a matter of the message scheme you're using. If you're
| talking about correctness of the IPC protocol itself,
| integrity checking is unfortunately at odds with latency.
| jeffreygoesto wrote:
| Does the schema help a lot? For C++ you can get very fast
| without, for example with IceOryx https://github.com/eclipse-
| iceoryx/iceoryx
|
| In contrast to Cap'n'Proto you get compiler optimized struct
| layout as benefit from using raw structs. Benchmarks are here
| https://iceoryx.io/v2.0.2/examples/iceperf/
___________________________________________________________________
(page generated 2024-04-13 23:01 UTC)