sig
  type address = NetTcp.Address.t
  type t
  val create : ?cache_timeout:float -> RPCServer.t -> Broadcast.t
  val broadcast : Broadcast.t -> Bencode.t -> unit
  val connect : Broadcast.t -> Broadcast.address -> bool Lwt.t
  val neighbors : Broadcast.t -> Broadcast.address list
  type event = Receive of Bencode.t | NewNeighbor of Broadcast.address
  val events : Broadcast.t -> Broadcast.event Signal.t
  val recv : Broadcast.t -> Broadcast.event Lwt.t
end