Documentation

Overview

    Package reuseport provides TCP net.Listener with SO_REUSEPORT support.

    SO_REUSEPORT allows linear scaling server performance on multi-CPU servers. See https://www.nginx.com/blog/socket-sharding-nginx-release-1-9-1/ for more details :)

    The package is based on https://github.com/kavu/go_reuseport .

    Index

    Examples

    Constants

    This section is empty.

    Variables

    This section is empty.

    Functions

    func Listen

    func Listen(network, addr string) (net.Listener, error)

      Listen returns TCP listener with SO_REUSEPORT option set.

      The returned listener tries enabling the following TCP options, which usually have positive impact on performance:

      - TCP_DEFER_ACCEPT. This option expects that the server reads from accepted

      connections before writing to them.
      

      - TCP_FASTOPEN. See https://lwn.net/Articles/508865/ for details.

      Use https://github.com/valyala/tcplisten if you want customizing these options.

      Only tcp4 and tcp6 networks are supported.

      ErrNoReusePort error is returned if the system doesn't support SO_REUSEPORT.

      Example
      Output:
      
      

      Types

      type ErrNoReusePort

      type ErrNoReusePort struct {
      	// contains filtered or unexported fields
      }

        ErrNoReusePort is returned if the OS doesn't support SO_REUSEPORT.

        func (*ErrNoReusePort) Error

        func (e *ErrNoReusePort) Error() string

          Error implements error interface.

          GOOS=linux, GOARCH=amd64