Need help with go_reuseport?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

492 Stars 64 Forks MIT License 64 Commits 1 Opened issues


Brings SO_REUSEPORT into your Go server

Services available


Need anything else?

Contributors list


Build Status codecov GoDoc

GO_REUSEPORT is a little expirement to create a

that supports SO_REUSEPORT socket option.

For now, Darwin and Linux (from 3.9) systems are supported. I'll be pleased if you'll test other systems and tell me the results. documentation on


package main

import ( "fmt" "html" "net/http" "os" "runtime" "" )

func main() { listener, err := reuseport.Listen("tcp", "localhost:8881") if err != nil { panic(err) } defer listener.Close()

server := &http.Server{} http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Println(os.Getgid()) fmt.Fprintf(w, "Hello, %q\n", html.EscapeString(r.URL.Path)) })

panic(server.Serve(listener)) }

Now you can run several instances of this tiny server without

Address already in use


Inspired by Artur Siekielski post about


We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.