pub fn server(
    addr: &SocketAddr
) -> (SocketAddr, impl Future<Output = Result<(), Error>>, ShutdownHandle)