go-reuseport VS executable-dist-plugin

Compare go-reuseport vs executable-dist-plugin and see what are their differences.

executable-dist-plugin

A Gradle plugin which makes distribution zips runnable, as a sort of alternative to an uberjar. A London Beach production :guardsman::palm_tree:. (by vmware-archive)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
go-reuseport executable-dist-plugin
1 1
733 3
2.6% -
5.0 10.0
about 1 month ago about 9 years ago
Go Java
ISC License BSD 2-clause "Simplified" License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

go-reuseport

Posts with mentions or reviews of go-reuseport. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-03-22.
  • The Simplicity of Single-File Golang Deployments
    10 projects | news.ycombinator.com | 22 Mar 2023
    Can't help with how to implement this, but just to be sure: You should be able to use the same port in multiple instances if you bind those with SO_REUSEPORT. A quick search points to https://github.com/libp2p/go-reuseport for an implementation. Now you just need a mechanism to drain the old process.

executable-dist-plugin

Posts with mentions or reviews of executable-dist-plugin. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-03-22.
  • The Simplicity of Single-File Golang Deployments
    10 projects | news.ycombinator.com | 22 Mar 2023
    I feel like i'm taking crazy pills (at a low dose) when i read this stuff.

    I deploy Java applications. In a runnable condition, they aren't a single file, but they aren't many - maybe a dozen jars plus some scripts. Our build process puts all that in a tarball. Deployment comprises copying the tarball to the server, then unpacking it [1].

    That is one step more than deploying a single binary, but it's a trivial step, and both steps are done by a release script, so there is a single user-visible step.

    The additional pain associated with deploying a tarball rather than a single binary is negligible. It simply is not worth worrying about [2].

    But Go enjoyers make such a big deal of this single binary! What am i missing?

    Now, this post does talk about Docker. If you use Docker to deploy, then yes, that is more of a headache. But Docker is not the only alternative to a single binary! You can just deploy a tarball!

    [1] We do deploy the JDK separately. We have a script which takes a local path to a JDK tarball and a hostname, and installs the JDK in the right place on the target machine. This is a bit caveman, and it might be better to use something like Ansible, or make custom OS packages for specific JDKs, or even use something like asdf. But we don't need to deploy JDKs very often, so the script works for us.

    [2] Although if you insist, it's pretty easy to make a self-expanding-and-running zip, so you could have a single file if you really want: https://github.com/vmware-archive/executable-dist-plugin

What are some alternatives?

When comparing go-reuseport and executable-dist-plugin you can also consider the following projects:

debug - Fork of pkg/debug that adds some additional functionality.

bearclaw - tiny static site generator w/ rss

release.sh - 🚀 A simple bash script for building Go projects for multiple platforms 💻💾

Quarkus - Quarkus: Supersonic Subatomic Java.

tableflip - Graceful process restarts in Go