Stable pubsub mini library (preferably brokerless)

I have run into too many issues with ofxosc dropping in and out plus that it seems unable to share a port on mc osx (big sur)

So i am looking for an alternative.
It should be :
Simple, mini, pub/sub only and have clients written in openframeworks as well as python.

I have a deadline at this thursday and have been bothered too much by osc to even consider walking back to it.

Any advice? I am running out of time.

One computer (mac, big sur)
1 process in python talking to the other processes in cpp/ofx
Python broadcasts controls to other processes that makes actions from them.

what is the issue you are having with osc – I haven’t had many issues before so I’m curious. Also I’m not 100% what you mean by sharing ports (you can’t have more than one process on a port as far as I know)

If helpful, I’ve used ofxZMQ to talk to python back in the day – the add-on looks a little old but there are some recent branches

in my case (this was a while ago, maybe 3 years or so) I was sending an image via OF to python for some kind of machine learning technique.

#include "ofxZmq.h"

ofxZmqPublisher pub;
pub.send(face64x64gray.getData(), 1 * 64 * 64 * sizeof(unsigned char));

here was I sending a 64x64 pixel image and I think high-water mark is saying how large the que can get… (it was a while ago)

I can’t find the corresponding python but I don’t remember zmq being that complicated…

hope this helps!

Hi zach. Thx for taking the time to reply.

I am two months into learning ofx. Background in all sorts of dev so writing isnt an issue.

But. By looking at ofxosc source i see the word ‘reuse’ and thought that ofxosc was using SO_REUSEPORT linux - How do SO_REUSEADDR and SO_REUSEPORT differ? - Stack Overflow

If it was then multiple clients should be able to listen on same port.

Anyway my issue is that i am writing a vj suite for personal use. (All is opensourced in case anybody else could use as well)
And i have a really nice bpm d iven step sequencer in python with ui that i have written and wanna use it to control two other apps i am writing:
A: a 4 channel video mixer (optionally using syphon as video inputs)
B: various mini ‘sketches’, aka small apps that output syphon and are controlled by the step sequencer.

I need a broker i guess. Cuz. Every component needs to sub to specific messages. And the sequencer needs tobe able to send to these subjects.

I guess mqtt is the solution but its annoying i cnt do this without a heavy mqtt server as part of install