-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Documentation: What parts of the zmq library does libzmtp support? #40
Comments
From looking at the source code, it seems that it supports the ZMQ_DEALER socket and something called CHANNEL, which I don't see in the zmq socket documentation How difficult would it be to implement PUB/SUB or XPUB/XSUB? |
Delving deeper into the zmq documentation, it looks like one could build majordomo on top of this library, but pub/sub is completely different. Is that about right? |
The libzmtp is a minimal library meant for clients only, at this stage. It should be relatively easy to add SUB socket support. PULL and PUSH are On Fri, Apr 3, 2015 at 5:51 PM, Garrett Berg [email protected]
|
What about a memory manager? Do you use |
Yes, it uses the heap. You can see this quite simply in the code. On Fri, Apr 3, 2015 at 9:47 PM, Garrett Berg [email protected]
|
The reason I ask is because I have written a memory manager for microcontrollers, tinymem. It is currently in Alpha state (usable but needs more tests and features), but it would allow microcontrollers to use you library. I have an overall vision:
I would like to make a branch of libzmtp to use tinymem (as soon as tinymem is in Beta). The branch would be written in such a way that a developer could disable tinymem if they were on a system that supported malloc/free. I would also like to extend libzmpt to support pub/sub. Would these things interest you? I will write the code and do a pull request to use tinymem. |
Sounds fun, definitely worth exploring. On Fri, Apr 3, 2015 at 10:26 PM, Garrett Berg [email protected]
|
I've looked over how zmq actually does it's filtering, and I'm worried that it is not a protocol that can be realistically ported to microcontrollers. I've wondered for a while on how they do their matching, and it looks like they use an inverted bitmap to search through a set of strings and determine matches. I don't think this is an embeddable algorithm. I've actually begun work on a protocol with a much simpler matching scheme that I call TMQ. This uses tokens instead of strings for matching, which means I can use just hash table lookups for everything. Thoughts? |
That whitepaper describes the matching we used in OpenAMQ, over a decade ZeroMQ uses a very different matching model, see So while TMQ looks fine, it's based on a rather wrong assumption of what On Sun, Apr 26, 2015 at 9:31 PM, Garrett Berg [email protected]
|
That's good to hear. So how much memory do you think a publisher would take under various conditions? Do you really think it is doable on a microcontroller? I've just had a pretty big breakthrough on my memory manager that will require a bit of an overhaul. I'll let you know when I'm closer :) |
A simple publisher needs no significant memory at all. An embedded device On Mon, Apr 27, 2015 at 12:14 AM, Garrett Berg [email protected]
|
This library looks amazing and exactly what I am looking for?
In general, what features are supported and what does the library require to operate?
Thanks a ton!
The text was updated successfully, but these errors were encountered: