libevent es una biblioteca de software que proporciona notificaciones de eventos asincrónicos. La API de libevent proporciona un mecanismo para ejecutar una función de devolución de llamada cuando se produce un evento específico en un descriptor de archivo o después de que se alcanza un tiempo de espera . libevent también admite devoluciones de llamadas activadas por señales y tiempos de espera regulares.
libevent está pensado para reemplazar el bucle de eventos que se encuentra en los servidores de red controlados por eventos . Una aplicación puede simplemente llamar event_dispatch()y luego agregar o eliminar eventos de manera dinámica sin tener que cambiar el bucle de eventos.
Actualmente , libevent admite los puertos de eventos /dev/poll, kqueue(2), POSIX select(2), Windows IOCP , y Solaris . También tiene soporte experimental para señales en tiempo real. La API de eventos expuesta es uniforme en todas las plataformas compatibles. Como resultado, libevent permite el desarrollo de aplicaciones portátiles y proporciona "el mecanismo de notificación de eventos más escalable disponible en un sistema operativo". [1]poll(2)epoll(7)
Al utilizar devoluciones de llamadas en señales, libevent permite escribir manejadores de señales "seguros" ya que ninguno de los códigos de manejo de señales suministrados por el usuario se ejecuta en el contexto de la señal .
libevent fue creado por Niels Provos y es mantenido principalmente por Azat Khuzhin. Se publica bajo una licencia BSD . [3]
Aplicaciones notables
Algunas de las aplicaciones notables que aprovechan libevent son:
- Google Chrome : el navegador web de Google (versiones para Mac y Linux) [4]
- Memcached : un sistema de almacenamiento en caché de objetos de memoria distribuida y de alto rendimiento [5]
- Transmission : un cliente BitTorrent de código abierto
- ntpd : el demonio del Protocolo de tiempo de red
- Tor : un sistema de comunicación anónimo en Internet
- tmux : un multiplexor de terminal [6]
Alternativas
Lanzamientos de versiones principales
- libevent 2.1 se lanzó el 3 de abril de 2012.
- libevent 2.0 se lanzó el 17 de abril de 2009.
- libevent 1.4 se lanzó el 11 de noviembre de 2007.
- libevent 1.3 fue lanzado el 15 de febrero de 2007.
- libevent 1.2 fue lanzado el 15 de octubre de 2006.
- libevent 1.1 fue lanzado el 14 de mayo de 2005.
Referencias
- ^ ab "libevent – una biblioteca de notificaciones de eventos". libevent.org . Consultado el 17 de septiembre de 2021 .
- ^ "LICENCIA". Github . Consultado el 30 de agosto de 2019 .
- ^ http://www.monkey.org/~provos/libevent/LICENSE Licencia de libevent
- ^ "third_party/libevent - chromium/chromium - Git en Google". chromium.googlesource.com . Consultado el 30 de abril de 2023 .
- ^ "Instalar". GitHub . Consultado el 30 de abril de 2023 .
- ^ "tmux/README en Master - tmux/tmux - GitHub". GitHub .
Enlaces externos
- Página web de Libevent
- Repositorio de Github de Libevent
- Libro Libevent 2.0
- Página web "El problema del C10K" de Dan Kegel
- Un punto de referencia del autor de libev que compara libevent con libev, una biblioteca similar