func ListenAndServe(addr string) error {
	return server.New(addr, nil).ListenAndServe()
}
distributed
ListenAndServe receives a network address and starts a server
with a remote server cache handler registered to it
which handles remote client-side cache handlers
client should register its handlers with the RemoteCache & RemoteCacheFasthttp functions

Note: It doesn't starts the server,
package httpcache
import (
	"github.com/geekypanda/httpcache/fhttp"
	"github.com/geekypanda/httpcache/nethttp"
	"github.com/geekypanda/httpcache/server"
	"github.com/valyala/fasthttp"
	"net/http"
	"time"
)
const (
	Version = "0.0.5"
)
func Cache(bodyHandler http.Handler, expiration time.Duration) *nethttp.Handler {
	return nethttp.NewHandler(bodyHandler, expiration)
}
func CacheFunc(bodyHandler func(http.ResponseWriter, *http.Request), expiration time.Duration) http.HandlerFunc {
	return Cache(http.HandlerFunc(bodyHandler), expiration).ServeHTTP
}
func CacheFasthttp(bodyHandler fasthttp.RequestHandler, expiration time.Duration) *fhttp.Handler {
	return fhttp.NewHandler(bodyHandler, expiration)
}
func CacheFasthttpFunc(bodyHandler fasthttp.RequestHandler, expiration time.Duration) fasthttp.RequestHandler {
	return CacheFasthttp(bodyHandler, expiration).ServeHTTP
}