{ buildDunePackage
, shared-memory-ring
, ppx_cstruct
, cstruct
, lwt
, lwt-dllist
, mirage-profile
, ounit
}:

buildDunePackage {
  pname = "shared-memory-ring-lwt";

  inherit (shared-memory-ring) version src;

  duneVersion = "3";

  buildInputs = [
    ppx_cstruct
  ];

  propagatedBuildInputs = [
    shared-memory-ring
    cstruct
    lwt
    lwt-dllist
    mirage-profile
  ];

  doCheck = true;
  checkInputs = [
    ounit
  ];

  meta = shared-memory-ring.meta // {
    description = "Shared memory rings for RPC and bytestream communications using Lwt";
  };
}
