#zeromq — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #zeromq, aggregated by home.social.
-
The #ZeroMQ guide is full of weird and unfunny jokes, but this was the first one that actually made me chuckle.
-
Строим шину данных для микросервисов на ZeroMQ: failover, гарантии доставки и E2E-шифрование
Асинхронная клиент-серверная библиотека для обмена сообщениями между микросервисами на базе ZeroMQ. Реализует гарантированную доставку сообщений (At-Least-Once) с персистентной файловой очередью при обрывах связи, автоматический failover сервера переадресации (клиенты могут подхватывать роль сервера на лету) и два уровня защиты: шифрование канала (CurveZMQ) и сквозное шифрование сообщений (HMAC). Лёгкая альтернатива брокерам вроде RabbitMQ, не требующая отдельного сервера.
https://habr.com/ru/articles/1030020/
#python #zeromq #zmq #failover #atleastonce #endtoend_шифрование #микросервисы #распределенные_системы #hmac #криптография
-
Строим шину данных для микросервисов на ZeroMQ: failover, гарантии доставки и E2E-шифрование
Асинхронная клиент-серверная библиотека для обмена сообщениями между микросервисами на базе ZeroMQ. Реализует гарантированную доставку сообщений (At-Least-Once) с персистентной файловой очередью при обрывах связи, автоматический failover сервера переадресации (клиенты могут подхватывать роль сервера на лету) и два уровня защиты: шифрование канала (CurveZMQ) и сквозное шифрование сообщений (HMAC). Лёгкая альтернатива брокерам вроде RabbitMQ, не требующая отдельного сервера.
https://habr.com/ru/articles/1030020/
#python #zeromq #zmq #failover #atleastonce #endtoend_шифрование #микросервисы #распределенные_системы #hmac #криптография
-
Строим шину данных для микросервисов на ZeroMQ: failover, гарантии доставки и E2E-шифрование
Асинхронная клиент-серверная библиотека для обмена сообщениями между микросервисами на базе ZeroMQ. Реализует гарантированную доставку сообщений (At-Least-Once) с персистентной файловой очередью при обрывах связи, автоматический failover сервера переадресации (клиенты могут подхватывать роль сервера на лету) и два уровня защиты: шифрование канала (CurveZMQ) и сквозное шифрование сообщений (HMAC). Лёгкая альтернатива брокерам вроде RabbitMQ, не требующая отдельного сервера.
https://habr.com/ru/articles/1030020/
#python #zeromq #zmq #failover #atleastonce #endtoend_шифрование #микросервисы #распределенные_системы #hmac #криптография
-
Строим шину данных для микросервисов на ZeroMQ: failover, гарантии доставки и E2E-шифрование
Асинхронная клиент-серверная библиотека для обмена сообщениями между микросервисами на базе ZeroMQ. Реализует гарантированную доставку сообщений (At-Least-Once) с персистентной файловой очередью при обрывах связи, автоматический failover сервера переадресации (клиенты могут подхватывать роль сервера на лету) и два уровня защиты: шифрование канала (CurveZMQ) и сквозное шифрование сообщений (HMAC). Лёгкая альтернатива брокерам вроде RabbitMQ, не требующая отдельного сервера.
https://habr.com/ru/articles/1030020/
#python #zeromq #zmq #failover #atleastonce #endtoend_шифрование #микросервисы #распределенные_системы #hmac #криптография
-
I was intending this to be a blog post, but I guess it'll be a long Fedi post instead since I have a large char limit on my instance :-P Time to explain what I've been doing lately!
Basic, new music player: "Aika". I've named it after the character in Agent Aika because I like that anime and I'm just a lewd girl like that. If you know me well, you should not be surprised. Ask me who my Reika program is named after sometime...
Anyway, Aika is NOT a replacement for #Benben (that ain't going away, I love it too much). I gotta emphasize that. Benben will continue. Aika is simply another option for people. This one is special in that the UI is entirely based around #ZeroMQ sockets. So imagine having a local player, running like you see here, but then you can securely connect additional "Remote UIs" to it over a network. These can just connect/disconnect whenever you need, however many you want, and Aika will just keep doing its thing. Kinda like MPD, but easier to use, and you always have a local interface like you see here, never just an invisible process in the background. I call these "Remote UIs". Extremely useful for someone like me who goes around the house to multiple computers while wearing Bluetooth headphones... but it could technically also stream the audio over the network in the future, too. Anyway, I call this ZeroMQ UI stuff the "Remote UI Protocol", and it's Aika's main special thing.
Also, unlike Benben, this one will allow you to add and remove files while it's running through a built-in file browser. So whereas Benben was designed to be like a super sexy version of mpg123 from the start, Aika will be more like a terminal version of Audacious. Sorta. It'll still have its own feel.
Oh, and Aika uses plugins so that support for audio formats, playlist formats, backends, etc. can be changed without changing Aika itself (herself?). So that's another difference. They're just .so files.
The video here just shows a temporary UI that I'm using while I build out the Remote UI Protocol and get things working. It'll look different and more complete in time. This UI here is not yet a true Remote UI, it's entirely local and built into Aika (the "Local UI"), but it is using the Remote UI Protocol over ZeroMQ internally while I design it. Once I have that protocol finished and implemented, I'll convert this Local UI to not use ZeroMQ for some things (for latency reasons), then implement a true example Remote UI that mimics Benben's interface and can run on an entirely separate machine (even across the world if you want).
Lastly, Aika is written in Object #Pascal, not #CommonLisp. So whereas Benben has a 106mb binary (uncompressed, give or take), Aika currently has a 900kb binary. Whereas Benben uses 133 mb of RAM at runtime to play the Quake 2 soundtrack in FLAC format, Aika currently uses 5mb. Also, Aika has been using about half to one quarter less CPU than Benben so far.
It'll be quite a while until Aika is ready for a v0.1.0 release, but I've got the beginnings going on here. The code will be a bit messy at first until the protocol designs solidify, the UI is very incomplete, there's no resampling yet, and it crashes/deadlocks sometimes... but it's at least able to play albums in FLAC format right now :happyremi: https://fossil.cyberia9.org/aika/
As for Benben.. I blasted through the milestones for v1.0.0 a lot quicker than I expected, so expect it out sooner than later. Maybe mid summer.
EDIT: Oh, and Aika is specifically targeting any POSIX-compatible OS. I'm actually testing things fairly regularly on #Haiku to ensure it works there in particular. -
I was intending this to be a blog post, but I guess it'll be a long Fedi post instead since I have a large char limit on my instance :-P Time to explain what I've been doing lately!
Basic, new music player: "Aika". I've named it after the character in Agent Aika because I like that anime and I'm just a lewd girl like that. If you know me well, you should not be surprised. Ask me who my Reika program is named after sometime...
Anyway, Aika is NOT a replacement for #Benben (that ain't going away, I love it too much). I gotta emphasize that. Benben will continue. Aika is simply another option for people. This one is special in that the UI is entirely based around #ZeroMQ sockets. So imagine having a local player, running like you see here, but then you can securely connect additional "Remote UIs" to it over a network. These can just connect/disconnect whenever you need, however many you want, and Aika will just keep doing its thing. Kinda like MPD, but easier to use, and you always have a local interface like you see here, never just an invisible process in the background. I call these "Remote UIs". Extremely useful for someone like me who goes around the house to multiple computers while wearing Bluetooth headphones... but it could technically also stream the audio over the network in the future, too. Anyway, I call this ZeroMQ UI stuff the "Remote UI Protocol", and it's Aika's main special thing.
Also, unlike Benben, this one will allow you to add and remove files while it's running through a built-in file browser. So whereas Benben was designed to be like a super sexy version of mpg123 from the start, Aika will be more like a terminal version of Audacious. Sorta. It'll still have its own feel.
Oh, and Aika uses plugins so that support for audio formats, playlist formats, backends, etc. can be changed without changing Aika itself (herself?). So that's another difference. They're just .so files.
The video here just shows a temporary UI that I'm using while I build out the Remote UI Protocol and get things working. It'll look different and more complete in time. This UI here is not yet a true Remote UI, it's entirely local and built into Aika (the "Local UI"), but it is using the Remote UI Protocol over ZeroMQ internally while I design it. Once I have that protocol finished and implemented, I'll convert this Local UI to not use ZeroMQ for some things (for latency reasons), then implement a true example Remote UI that mimics Benben's interface and can run on an entirely separate machine (even across the world if you want).
Lastly, Aika is written in Object #Pascal, not #CommonLisp. So whereas Benben has a 106mb binary (uncompressed, give or take), Aika currently has a 900kb binary. Whereas Benben uses 133 mb of RAM at runtime to play the Quake 2 soundtrack in FLAC format, Aika currently uses 5mb. Also, Aika has been using about half to one quarter less CPU than Benben so far.
It'll be quite a while until Aika is ready for a v0.1.0 release, but I've got the beginnings going on here. The code will be a bit messy at first until the protocol designs solidify, the UI is very incomplete, there's no resampling yet, and it crashes/deadlocks sometimes... but it's at least able to play albums in FLAC format right now :happyremi: https://fossil.cyberia9.org/aika/
As for Benben.. I blasted through the milestones for v1.0.0 a lot quicker than I expected, so expect it out sooner than later. Maybe mid summer.
EDIT: Oh, and Aika is specifically targeting any POSIX-compatible OS. I'm actually testing things fairly regularly on #Haiku to ensure it works there in particular. -
I was intending this to be a blog post, but I guess it'll be a long Fedi post instead since I have a large char limit on my instance :-P Time to explain what I've been doing lately!
Basic, new music player: "Aika". I've named it after the character in Agent Aika because I like that anime and I'm just a lewd girl like that. If you know me well, you should not be surprised. Ask me who my Reika program is named after sometime...
Anyway, Aika is NOT a replacement for #Benben (that ain't going away, I love it too much). I gotta emphasize that. Benben will continue. Aika is simply another option for people. This one is special in that the UI is entirely based around #ZeroMQ sockets. So imagine having a local player, running like you see here, but then you can securely connect additional "Remote UIs" to it over a network. These can just connect/disconnect whenever you need, however many you want, and Aika will just keep doing its thing. Kinda like MPD, but easier to use, and you always have a local interface like you see here, never just an invisible process in the background. I call these "Remote UIs". Extremely useful for someone like me who goes around the house to multiple computers while wearing Bluetooth headphones... but it could technically also stream the audio over the network in the future, too. Anyway, I call this ZeroMQ UI stuff the "Remote UI Protocol", and it's Aika's main special thing.
Also, unlike Benben, this one will allow you to add and remove files while it's running through a built-in file browser. So whereas Benben was designed to be like a super sexy version of mpg123 from the start, Aika will be more like a terminal version of Audacious. Sorta. It'll still have its own feel.
Oh, and Aika uses plugins so that support for audio formats, playlist formats, backends, etc. can be changed without changing Aika itself (herself?). So that's another difference. They're just .so files.
The video here just shows a temporary UI that I'm using while I build out the Remote UI Protocol and get things working. It'll look different and more complete in time. This UI here is not yet a true Remote UI, it's entirely local and built into Aika (the "Local UI"), but it is using the Remote UI Protocol over ZeroMQ internally while I design it. Once I have that protocol finished and implemented, I'll convert this Local UI to not use ZeroMQ for some things (for latency reasons), then implement a true example Remote UI that mimics Benben's interface and can run on an entirely separate machine (even across the world if you want).
Lastly, Aika is written in Object #Pascal, not #CommonLisp. So whereas Benben has a 106mb binary (uncompressed, give or take), Aika currently has a 900kb binary. Whereas Benben uses 133 mb of RAM at runtime to play the Quake 2 soundtrack in FLAC format, Aika currently uses 5mb. Also, Aika has been using about half to one quarter less CPU than Benben so far.
It'll be quite a while until Aika is ready for a v0.1.0 release, but I've got the beginnings going on here. The code will be a bit messy at first until the protocol designs solidify, the UI is very incomplete, there's no resampling yet, and it crashes/deadlocks sometimes... but it's at least able to play albums in FLAC format right now :happyremi: https://fossil.cyberia9.org/aika/
As for Benben.. I blasted through the milestones for v1.0.0 a lot quicker than I expected, so expect it out sooner than later. Maybe mid summer.
EDIT: Oh, and Aika is specifically targeting any POSIX-compatible OS. I'm actually testing things fairly regularly on #Haiku to ensure it works there in particular. -
I was intending this to be a blog post, but I guess it'll be a long Fedi post instead since I have a large char limit on my instance :-P Time to explain what I've been doing lately!
Basic, new music player: "Aika". I've named it after the character in Agent Aika because I like that anime and I'm just a lewd girl like that. If you know me well, you should not be surprised. Ask me who my Reika program is named after sometime...
Anyway, Aika is NOT a replacement for #Benben (that ain't going away, I love it too much). I gotta emphasize that. Benben will continue. Aika is simply another option for people. This one is special in that the UI is entirely based around #ZeroMQ sockets. So imagine having a local player, running like you see here, but then you can securely connect additional "Remote UIs" to it over a network. These can just connect/disconnect whenever you need, however many you want, and Aika will just keep doing its thing. Kinda like MPD, but easier to use, and you always have a local interface like you see here, never just an invisible process in the background. I call these "Remote UIs". Extremely useful for someone like me who goes around the house to multiple computers while wearing Bluetooth headphones... but it could technically also stream the audio over the network in the future, too. Anyway, I call this ZeroMQ UI stuff the "Remote UI Protocol", and it's Aika's main special thing.
Also, unlike Benben, this one will allow you to add and remove files while it's running through a built-in file browser. So whereas Benben was designed to be like a super sexy version of mpg123 from the start, Aika will be more like a terminal version of Audacious. Sorta. It'll still have its own feel.
Oh, and Aika uses plugins so that support for audio formats, playlist formats, backends, etc. can be changed without changing Aika itself (herself?). So that's another difference. They're just .so files.
The video here just shows a temporary UI that I'm using while I build out the Remote UI Protocol and get things working. It'll look different and more complete in time. This UI here is not yet a true Remote UI, it's entirely local and built into Aika (the "Local UI"), but it is using the Remote UI Protocol over ZeroMQ internally while I design it. Once I have that protocol finished and implemented, I'll convert this Local UI to not use ZeroMQ for some things (for latency reasons), then implement a true example Remote UI that mimics Benben's interface and can run on an entirely separate machine (even across the world if you want).
Lastly, Aika is written in Object #Pascal, not #CommonLisp. So whereas Benben has a 106mb binary (uncompressed, give or take), Aika currently has a 900kb binary. Whereas Benben uses 133 mb of RAM at runtime to play the Quake 2 soundtrack in FLAC format, Aika currently uses 5mb. Also, Aika has been using about half to one quarter less CPU than Benben so far.
It'll be quite a while until Aika is ready for a v0.1.0 release, but I've got the beginnings going on here. The code will be a bit messy at first until the protocol designs solidify, the UI is very incomplete, there's no resampling yet, and it crashes/deadlocks sometimes... but it's at least able to play albums in FLAC format right now :happyremi: https://fossil.cyberia9.org/aika/
As for Benben.. I blasted through the milestones for v1.0.0 a lot quicker than I expected, so expect it out sooner than later. Maybe mid summer.
EDIT: Oh, and Aika is specifically targeting any POSIX-compatible OS. I'm actually testing things fairly regularly on #Haiku to ensure it works there in particular. -
I was intending this to be a blog post, but I guess it'll be a long Fedi post instead since I have a large char limit on my instance :-P Time to explain what I've been doing lately!
Basic, new music player: "Aika". I've named it after the character in Agent Aika because I like that anime and I'm just a lewd girl like that. If you know me well, you should not be surprised. Ask me who my Reika program is named after sometime...
Anyway, Aika is NOT a replacement for #Benben (that ain't going away, I love it too much). I gotta emphasize that. Benben will continue. Aika is simply another option for people. This one is special in that the UI is entirely based around #ZeroMQ sockets. So imagine having a local player, running like you see here, but then you can securely connect additional "Remote UIs" to it over a network. These can just connect/disconnect whenever you need, however many you want, and Aika will just keep doing its thing. Kinda like MPD, but easier to use, and you always have a local interface like you see here, never just an invisible process in the background. I call these "Remote UIs". Extremely useful for someone like me who goes around the house to multiple computers while wearing Bluetooth headphones... but it could technically also stream the audio over the network in the future, too. Anyway, I call this ZeroMQ UI stuff the "Remote UI Protocol", and it's Aika's main special thing.
Also, unlike Benben, this one will allow you to add and remove files while it's running through a built-in file browser. So whereas Benben was designed to be like a super sexy version of mpg123 from the start, Aika will be more like a terminal version of Audacious. Sorta. It'll still have its own feel.
Oh, and Aika uses plugins so that support for audio formats, playlist formats, backends, etc. can be changed without changing Aika itself (herself?). So that's another difference. They're just .so files.
The video here just shows a temporary UI that I'm using while I build out the Remote UI Protocol and get things working. It'll look different and more complete in time. This UI here is not yet a true Remote UI, it's entirely local and built into Aika (the "Local UI"), but it is using the Remote UI Protocol over ZeroMQ internally while I design it. Once I have that protocol finished and implemented, I'll convert this Local UI to not use ZeroMQ for some things (for latency reasons), then implement a true example Remote UI that mimics Benben's interface and can run on an entirely separate machine (even across the world if you want).
Lastly, Aika is written in Object #Pascal, not #CommonLisp. So whereas Benben has a 106mb binary (uncompressed, give or take), Aika currently has a 900kb binary. Whereas Benben uses 133 mb of RAM at runtime to play the Quake 2 soundtrack in FLAC format, Aika currently uses 5mb. Also, Aika has been using about half to one quarter less CPU than Benben so far.
It'll be quite a while until Aika is ready for a v0.1.0 release, but I've got the beginnings going on here. The code will be a bit messy at first until the protocol designs solidify, the UI is very incomplete, there's no resampling yet, and it crashes/deadlocks sometimes... but it's at least able to play albums in FLAC format right now :happyremi: https://fossil.cyberia9.org/aika/
As for Benben.. I blasted through the milestones for v1.0.0 a lot quicker than I expected, so expect it out sooner than later. Maybe mid summer.
EDIT: Oh, and Aika is specifically targeting any POSIX-compatible OS. I'm actually testing things fairly regularly on #Haiku to ensure it works there in particular. -
New blog post: "Back from Vacation": https://remilia.sdf.org/blog/2025-12-18-a.html
#block #CommonLisp #CrystalLang #ZeroMQ #ListenBrainz -
So, I have my own bindings for #ZeroMQ for #CommonLisp now: http://fossil.cyberia9.org/cl-remizmq/
Consider this the end of my vacation :happyremi:
This isn't quite 0.1.0 yet, but is already usable. It's a much more complete set of bindings compared to cl-zmq. Things of particular note:
* There's a Low-Level API that has complete (or at least near-complete) low-level bindings for contexts, sockets, messages, atomics, timers and proxies. It also has more extensive knowledge of the error codes, socket options, CURVE stuff, capability detection, etc.
* There's a High-level API that wraps all of the low-level stuff in high-level CLOS classes and/or code.
* The timers are an exception, and were rewritten from scratch in native Lisp code in the High-level API so that they integrate better with Lisp ecosystems, and play nicer when using the REPL.
* ThePROXYhigh-level class is nicer to use and more Lisp-y. It runs on its own thread so that you can use it in a REPL, and is easier to control.
There are some examples ported from the official guide in the repo. There is no documentation yet, but all of the functions/methods have documentation strings, which should hold you over until I write some actual docs. -
Here is my example of testing PyZMQ client and server code with pytest and pytest-mock. I haven't found much information on this topic. Anyone else have examples of testing PyZMQ code? https://gavinw.me/pythonic/pyzmq/test-client-server.html
-
@b0rk In the interest of sharing failed hypotheses: I’m not finding evidence people use #zeromq for fire-and-forget, blind fanout queues or other spray-n-pray style uses.
For some reason I thought this was an explicit feature given the protocol design, but I’m not seeing it. It explicitly lacks reliable delivery, so an expert may know better.
-
My friends, I’ve spent an unreasonable amount of time debugging a #ZeroMQ issue whereby a router socket swallows a message: ‘zmq_msg_send’ succeeds but there’s no corresponding ‘sendto’ call in the strace log.
How would you go about debugging this?
(Other questions I ask myself: How did I end up here? Why am I even doing this⁈)
-
Integrating #ZeroMQ (specifically Guile-Simple-ZMQ) with #Fibers turned out to be easier than expected:
https://git.savannah.gnu.org/cgit/guix/guix-cuirass.git/tree/src/cuirass/remote.scm?id=fa0c4b3b245879e08b1c3fd0c6c447d56c9c97a1#n427 -
I feel like I’ll never manage to wrap my head around the #ZeroMQ API: abstractions that get in the way (how do I ‘getsockname’? how do I integrate with my event loop? what about those I/O threads?), special cases (surprise, a ROUTER socket receives an extra message part!), and the feeling that my code is supposed to fit a pretty strict and unusual framework.
-
Eleven years ago I volunteered to add native #Infiniband / #RDMA support to #ZeroMQ. At the time I was working on high-performance networking and I thought it was a nice challenge... but shortly afterwards I landed my job at @mozilla and never finished it.
Since then I've been contacted multiple times by people who wished to finish my work but none succeeded. Last time was yesterday. Maybe I should give it a spin again: https://zeromq-dev.zeromq.narkive.com/a3hbU2H1/contributing-native-infiniband-rdma-support-to-0mq
-
#zeromq ont produit des specs sur leur modèle de contribution. Il a pour objectif " The number one goal is size and health of the community--not technical quality, not profits, not performance, not market share. The goal is simply the number of people who contribute to the project. The science here is simple: the larger the community, the more accurate the results."
Chapter 4 - The ZeroMQ Process: C4 · Social Architecture
https://hintjens.gitbooks.io/social-architecture/content/chapter4.html
-
Thank you @prashere for sharing what you have read so far from the #ZeroMQ guide ( http://zguide.zeromq.org/page:all ). It is quite exciting to think about this #decentralized and #distributed #communication #system.
-
#ZeroMQ and #Clojure, a brief introduction (Sep 2010)
https://antoniogarrote.wordpress.com/2010/09/08/zeromq-and-clojure-a-brief-introduction/