{"action":"created","issue":{"url":"https://api.github.com/repos/zeromq/libzmq/issues/807","repository_url":"https://api.github.com/repos/zeromq/libzmq","labels_url":"https://api.github.com/repos/zeromq/libzmq/issues/807/labels{/name}","comments_url":"https://api.github.com/repos/zeromq/libzmq/issues/807/comments","events_url":"https://api.github.com/repos/zeromq/libzmq/issues/807/events","html_url":"https://github.com/zeromq/libzmq/issues/807","id":25056603,"node_id":"MDU6SXNzdWUyNTA1NjYwMw==","number":807,"title":"UDP support","user":{"login":"LindleyF","id":6224264,"node_id":"MDQ6VXNlcjYyMjQyNjQ=","avatar_url":"https://avatars1.githubusercontent.com/u/6224264?v=4","gravatar_id":"","url":"https://api.github.com/users/LindleyF","html_url":"https://github.com/LindleyF","followers_url":"https://api.github.com/users/LindleyF/followers","following_url":"https://api.github.com/users/LindleyF/following{/other_user}","gists_url":"https://api.github.com/users/LindleyF/gists{/gist_id}","starred_url":"https://api.github.com/users/LindleyF/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LindleyF/subscriptions","organizations_url":"https://api.github.com/users/LindleyF/orgs","repos_url":"https://api.github.com/users/LindleyF/repos","events_url":"https://api.github.com/users/LindleyF/events{/privacy}","received_events_url":"https://api.github.com/users/LindleyF/received_events","type":"User","site_admin":false},"labels":[{"id":361093800,"node_id":"MDU6TGFiZWwzNjEwOTM4MDA=","url":"https://api.github.com/repos/zeromq/libzmq/labels/Area%20(Runtime%20/%20Usage)","name":"Area (Runtime / Usage)","color":"d4c5f9","default":false},{"id":58140780,"node_id":"MDU6TGFiZWw1ODE0MDc4MA==","url":"https://api.github.com/repos/zeromq/libzmq/labels/Critical","name":"Critical","color":"e11d21","default":false},{"id":361091830,"node_id":"MDU6TGFiZWwzNjEwOTE4MzA=","url":"https://api.github.com/repos/zeromq/libzmq/labels/Feature%20Request","name":"Feature Request","color":"bfdadc","default":false},{"id":164692207,"node_id":"MDU6TGFiZWwxNjQ2OTIyMDc=","url":"https://api.github.com/repos/zeromq/libzmq/labels/Useful%20Information","name":"Useful Information","color":"006b75","default":false}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":29,"created_at":"2014-01-04T17:08:03Z","updated_at":"2018-10-10T10:44:48Z","closed_at":"2016-04-11T19:43:52Z","author_association":"NONE","body":"Moving the issue from JIRA:\nhttps://zeromq.jira.com/browse/LIBZMQ-589\n\nThe problem: In an environment when messages have a very short time-of-usefulness, it is sometimes necessary to sacrifice reliability for absolutely minimum latency. It's okay if messages are occasionally dropped or occasionally arrive too late, but this percentage should be kept as low as possible, and as close to i.i.d. as possible.\nWith a protocol like TCP, a dropped packet requires retransmission after a delay. Not only the dropped packet but all later packets are therefore delayed. In the messaging world, this means the dropping of one message could negatively affect the latency of later, unrelated messages, and the distribution of delayed messages is not i.i.d. This is undesirable in latency-critical applications.\nWhile NACK-based protocols like PGM may provide somewhat better behavior in this regard, they still use bandwidth to attempt to restore lost messages without regard to whether or not those messages are still useful. A completely unreliable messaging transport is therefore desirable.\nAnother advantage of UDP transport is the ability to operate over one-way physical links, such as radio links where the transmitters on one end are much more powerful than the transmitters on the other end.\nThe UDP transport layer should minimally support IPv4 and IPv6 UDP unicast. IPv4 and IPv6 multicast, as well as IPv4 broadcast and subnet broadcast support, are desirable.\nSome work was done on a UDP transport for the Crossroads IO library forked from 0MQ some time ago. I believe this code is a good place to start, although it will require some adaptations to reverse Crossroads-specific changes and implement 0MQ-specific changes since the fork.\n\nI've pushed the changes:\nhttps://github.com/LindleyF/libzmq\nNote that this just builds---I doubt very much that it works yet.\nHere are the changes so far:\nhttps://github.com/LindleyF/libzmq/commit/c5f576e20db663bc724536786ef31a9482fe2fbe\nI wasn't sure what to do about the copyright notice so I left the Crossroads text mostly in place, with a note that I modified it for 0MQ.\n"},"comment":{"url":"https://api.github.com/repos/zeromq/libzmq/issues/comments/428526252","html_url":"https://github.com/zeromq/libzmq/issues/807#issuecomment-428526252","issue_url":"https://api.github.com/repos/zeromq/libzmq/issues/807","id":428526252,"node_id":"MDEyOklzc3VlQ29tbWVudDQyODUyNjI1Mg==","user":{"login":"jamesdillonharvey","id":11753498,"node_id":"MDQ6VXNlcjExNzUzNDk4","avatar_url":"https://avatars0.githubusercontent.com/u/11753498?v=4","gravatar_id":"","url":"https://api.github.com/users/jamesdillonharvey","html_url":"https://github.com/jamesdillonharvey","followers_url":"https://api.github.com/users/jamesdillonharvey/followers","following_url":"https://api.github.com/users/jamesdillonharvey/following{/other_user}","gists_url":"https://api.github.com/users/jamesdillonharvey/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesdillonharvey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesdillonharvey/subscriptions","organizations_url":"https://api.github.com/users/jamesdillonharvey/orgs","repos_url":"https://api.github.com/users/jamesdillonharvey/repos","events_url":"https://api.github.com/users/jamesdillonharvey/events{/privacy}","received_events_url":"https://api.github.com/users/jamesdillonharvey/received_events","type":"User","site_admin":false},"created_at":"2018-10-10T10:44:48Z","updated_at":"2018-10-10T10:44:48Z","author_association":"CONTRIBUTOR","body":"You have lost me now, I am not sure where you \"put\" that code?\n\nAll I can say is :\n\n1. make sure you have configured (then compiled) libzmq with --enable-drafts\n2. When you compile your code give g++ the option -DZMQ_BUILD_DRAFT_API=1\n\nIf that doesn't work then try using pkg-config as bluca suggest in the\nissue I linked earlier.\n\n\nOn Wed, Oct 10, 2018 at 11:38 AM Ziad kassam <notifications@github.com>\nwrote:\n\n> I put this part:\n> #ifdef ZMQ_BUILD_DRAFT_API\n>\n> //DRAFT Socket types.\n> #define ZMQ_SERVER 12\n> #define ZMQ_CLIENT 13\n> #define ZMQ_RADIO 14\n> #define ZMQ_DISH 15\n> #define ZMQ_GATHER 16\n> #define ZMQ_SCATTER 17\n> #define ZMQ_DGRAM 18\n> #endif\n>\n> Compiled normally, but the following error appears:\n> terminate called after throwing an instance of 'zmq::error_t'\n> what(): Invalid argument\n> Aborted (core dumped)\n>\n> —\n> You are receiving this because you commented.\n> Reply to this email directly, view it on GitHub\n> <https://github.com/zeromq/libzmq/issues/807#issuecomment-428524418>, or mute\n> the thread\n> <https://github.com/notifications/unsubscribe-auth/ALNYGlf4_VJd51BOO1_obDfqYGehdHDfks5ujc4cgaJpZM4BXbVs>\n> .\n>\n"}}
{"actor":{"display_login":"jamesdillonharvey"}}