{ lib, stdenv, fetchFromGitHub, autoreconfHook, glib, libev, libevent, pkg-config, glibSupport ? true, libevSupport ? true, libeventSupport ? true, }: let inherit (lib) optional; in stdenv.mkDerivation (finalAttrs: { pname = "libverto"; version = "0.3.2"; src = fetchFromGitHub { owner = "latchset"; repo = "libverto"; rev = finalAttrs.version; hash = "sha256-csoJ0WdKyrza8kBSMKoaItKvcbijI6Wl8nWCbywPScQ="; }; nativeBuildInputs = [ autoreconfHook pkg-config ]; buildInputs = optional glibSupport glib ++ optional libevSupport libev ++ optional libeventSupport libevent; meta = with lib; { homepage = "https://github.com/latchset/libverto"; description = "Asynchronous event loop abstraction library"; longDescription = '' Libverto exists to solve an important problem: many applications and libraries are unable to write asynchronous code because they are unable to pick an event loop. This is particularly true of libraries who want to be useful to many applications who use loops that do not integrate with one another or which use home-grown loops. libverto provides a loop-neutral async api which allows the library to expose asynchronous interfaces and offload the choice of the main loop to the application. ''; license = licenses.mit; maintainers = with maintainers; [ AndersonTorres ]; platforms = platforms.unix; }; })