Decline #
Many Go developers are probably familiar with gogo-protobuf, a third-party Protobuf library. It is used in many production systems, including prominent open-source projects such as k8s, etcd, TiDB, and Dgraph, as well as commercial companies such as Dropbox. I imagine that many companies in China, large and small, use it in production too:
gogo-protobuf is a fork of the official golang/protobuf, but it surpassed its predecessor. Its performance represented a major leap forward over the official library; see the gogo-protobuf benchmarks for details. This outstanding performance is precisely why it has attracted so many users.
And yet, this open-source project is about to die.
I recently visited the gogo-protobuf homepage again and saw an announcement from two years ago in which the maintainers asked an outside company or organization to take over the project. No one has stepped forward. I still find it hard to accept that a library so widely used and so much faster than the official implementation has not flourished, but instead has become unsustainable:
A few days ago, I emailed its author to express my wish to make a donation, hoping to contribute in some small way. Yesterday, I received a reply saying that he could not accept it. He said that knowing users recognize their work was already gratifying. He also explained that, after the release of protobuf-apiv2, gogo-protobuf could no longer remain compatible with the official standard. Restoring compatibility would first require a tremendous amount of engineering work and a full-time team to keep developing and maintaining the project. Unfortunately, the maintainers all have day jobs and can no longer devote so much time and energy to gogo-protobuf. Regrettably, they have no choice but to let the project go:

Open Source #
Fifty years ago, the great Richard Matthew Stallman launched and led the GNU project, and personally developed software that remains familiar to us today: GCC, GDB, and Emacs. Later, Linus, a Finnish university student, became dissatisfied because the MINIX operating system used for teaching at his university could not be used outside education. So he began building his own operating system on top of MINIX. Once the first kernel could run, he released its source code online under the GNU GPL and called it Linux.
Developers gradually joined the effort. Carried by the momentum of the GNU movement, Linux rose rapidly and ultimately filled the important missing-kernel role in the GNU project, giving us GNU/Linux. Linux became one of the world’s most important open-source operating systems. The GNU movement also gave rise to many great works of open source software: Linux, GCC, GDB, Emacs, PHP, MySQL, and more.
Open source is often called one of humanity’s greatest ideas. Its rise has helped computing flourish over the past several decades. Yet despite the apparent success of open source, it can face extremely difficult times. The widely publicized Log4j vulnerability, which affected countless projects and companies around the world, exposed an uncomfortable truth: many excellent and widely used third-party open-source libraries are still maintained by only a small number of developers, with inadequate financial support.
The irony is that many of these small open-source projects are used in production by commercial companies around the world to generate billions in profit. Yet their authors receive no return, and few companies give back to the authors or the community after benefiting from open source. Many large companies simply take advantage of great projects without contributing. In recent years, projects such as Redis and Elasticsearch changed their licenses partly because they were dissatisfied with cloud providers benefiting from their work without giving back. I even complained about this in a social-media post:

Interested readers can view the original post.
There are, in fact, many examples of open-source software that has been successfully commercialized and can develop sustainably, or of companies that successfully build open source: Kafka and Confluent, Redis and Redis Labs, Elasticsearch and Elastic, TiDB and PingCAP, and others. There are also successful projects that have not become large commercial companies but still operate well, with their authors receiving stable and substantial donations that make the projects sustainable, such as Vue.js.
But not every popular open-source project can successfully commercialize and provide its authors with substantial rewards. More often, open-source software goes without effective long-term support or compensation. Its authors gradually lose the motivation to continue developing and maintaining it, and it is eventually abandoned, leaving only a mess behind.
Reflections #
In his reply, Walter expressed deep helplessness and frustration over the impending death of gogo-protobuf. I believe that every open-source author treasures their work. As he wrote, recognition from users around the world is a wonderful feeling. I do not think the maintainers demand financial rewards, which is why Walter declined my donation with such integrity.
I am also an open-source author. I will not promote my own projects here; I only want to share a few thoughts from the two or three years I have spent working on open source in my spare time:
I have received hostile private messages because someone encountered a bug in production while using my library. I have spent my weekends helping people debug, identify, and eventually resolve problems they encountered while integrating it, only for them to treat it as something entirely natural and move on. I have asked companies that used my library heavily in production whether I could list them as a user case on the project’s homepage, a small form of publicity, and been refused because they did not want to reveal the technologies behind their products.
Fortunately, it has not all been bleak. I have received many thank-you emails, both from China and abroad. There have also been generous people who said little and simply donated; some anonymous donors even declined when I asked to record their names. These lovely people and moments have never weakened my faith in open source. I also hope that the open-source work I create can be used by more people, more projects, and more companies. There are many ways to realize one’s value in life, and I believe this is one of them.
I hope that more companies will give back to the open-source community and support open-source authors in the future. That support does not have to be financial; I believe there are many possible forms. We should keep exploring them.
Thank you.
Reply by Email