ZeroMQ – Relicense from LGPL3 and exceptions to MPL 2.0

by excerionsforteon 10/9/2023, 12:06 PMwith 129 comments

by CharlieDigitalon 10/9/2023, 12:34 PM

Back in 2014, I was rebuilding the core of an event processing engine. At the time, the decision was between Apache Kafka and rolling our own. After investigating Zookeeper, we decided to roll our own and chose ZeroMQ as the messaging layer as our on-prem customers probably didn't want to own and manage Zookeeper.

ZeroMQ was absolutely solid and stable; incredibly trouble free and the only issues we ran into were when IT teams didn't open the ports we documented in the configuration procedure. (The resultant architecture actually looks a lot like Flink)

In any case, ZeroMQ is a fantastic piece of technology that I feel like I don't see out in the wild quite enough. It's dead simple and incredibly stable from my experience.

by dsterryon 10/9/2023, 5:11 PM

Found Pieter and his books a couple years ago and it make a big impact. The Collective Code Construction Contract is a brilliant piece of community engineering and should be adopted/adapted by every FOSS project on the planet. We can accomplish so much more together if we have C4 and similar methods of coordination. Next time you hear of a burnt-out maintainer, have them read https://rfc.zeromq.org/spec/42/

by cobertoson 10/9/2023, 3:29 PM

Is it very common to contact _every_ maintainer and back out changes from ones who don't respond for license changes?

I feel like I've heard of many larger companies doing relicenses on their open source without this kind of effort.

by vitiralon 10/9/2023, 12:28 PM

That is damn impressive considering the age of the project. Kudos for getting signoff from all relevant parties!

by richardfontanaon 10/9/2023, 12:51 PM

The LGPLv3 exception had an atypical feature (for *GPL exceptions) and was possibly misdrafted, see: https://github.com/spdx/license-list-XML/issues/1672

by chromatinon 10/9/2023, 4:22 PM

Fun ZeroMQ fact: bitcoind has used zeromq since 2015. This is used by client software including lightning node daemons to get notification of incoming transactions and blocks in a highly reliable and rapid way.

https://github.com/bitcoin/bitcoin/blob/master/doc/zmq.md

by excerionsforteon 10/9/2023, 12:13 PM

Also 4.3.5 is out today with the new license: https://github.com/zeromq/libzmq/releases/tag/v4.3.5

by sdfghsweon 10/9/2023, 12:28 PM

Could someone who understands these licenses ELI5?

by sebospon 10/9/2023, 9:12 PM

How does ZMQ compare to recent message passing libraries? Does it have a place in rust's tokio ecosystem? Are there projects that implement the HA transaction store to disk protocol "out of the box" ? Forgot the name... Binary star something? I always think of working with ZMQ as I really enjoyed it, but I can't see it as easy no deploy as Kafka with so much ACL tooling, easy Auth and debugging, dashboards, metrics... Maybe one more question... What are recent projects that use ZMQ behind the scene that you find a good place to learn more message passing techniques and their tradeoffs?

by alfalfasprouton 10/9/2023, 4:45 PM

ZeroMQ is a fantastic piece of software that will still be in use decades from now. Also an amazing example of a very intuitive C API.

by F-W-Mon 10/9/2023, 12:50 PM

Worked on a team that used zeromq for a trading system. Worked well, but if you do not read the guide and get a good grip on what guarantees are provided by zero mq.

by abofhon 10/9/2023, 3:04 PM

I need to look, but I think one of my clients might owe me 6 figures for this one... I'll never get paid, but I'm definitely going to write the invoice.

by goodpointon 10/9/2023, 1:58 PM

What a pity. LGPL provides better protection.

by cryotopipptoon 10/9/2023, 1:21 PM

Poor Pieter Hintjens, he probably did this as soon as he learned about his cancer:

-CEO, iMatix Corporation sprl -23 April 2016

By October 2016 he was dead.

This PR basically merges his final commit.

I find it very sad.