sig
  exception Data_error of string
  exception Protocol_error of string
  val read_message : Lwt_io.input_channel -> OBus_message.t Lwt.t
  val write_message :
    Lwt_io.output_channel ->
    ?byte_order:Lwt_io.byte_order -> OBus_message.t -> unit Lwt.t
  val message_of_string : string -> Unix.file_descr array -> OBus_message.t
  val string_of_message :
    ?byte_order:Lwt_io.byte_order ->
    OBus_message.t -> string * Unix.file_descr array
  type reader
  val reader : Lwt_unix.file_descr -> OBus_wire.reader
  val read_message_with_fds : OBus_wire.reader -> OBus_message.t Lwt.t
  val close_reader : OBus_wire.reader -> unit Lwt.t
  type writer
  val writer : Lwt_unix.file_descr -> OBus_wire.writer
  val write_message_with_fds :
    OBus_wire.writer ->
    ?byte_order:Lwt_io.byte_order -> OBus_message.t -> unit Lwt.t
  val close_writer : OBus_wire.writer -> unit Lwt.t
end