Description

Pro-actor based abstraction layer over operating system asynchronous I/O facilities.

Package Information

Version0.8.9 (2017-Mar-11)
Repositoryhttps://github.com/vibe-d/eventcore
LicenseMIT
CopyrightCopyright © 2012-2016 rejectedsoftware e.K.
Registered bySönke Ludwig
Dependencies

taggedalgebraic

Installation

To use this package, put the following dependency into your project's dependencies section:

dub.json
dub.sdl

Readme

EventCore

This is a high-performance native event loop abstraction for D, focused on asynchronous I/O and GUI message integration. The API is callback (delegate) based. For a higher level fiber based abstraction, take a look at vibe.d.

DUB Package Posix Build Status Windows Build Status

Supported drivers and operating systems

DriverLinuxWindowsmacOSFreeBSDAndroidiOS
SelectEventDriveryesyesyesyes¹
EpollEventDriveryes
WinAPIEventDriveryes
KqueueEventDriveryesyes¹
LibasyncEventDriver—¹—¹—¹—¹

¹ planned, but not currenly implemented

Supported compilers

The following compilers are tested and supported:

  • DMD 2.073.0
  • DMD 2.072.2
  • DMD 2.071.2
  • DMD 2.070.2
  • LDC 1.1.0
  • LDC 1.0.0

Driver development status

FeatureSelectEventDriverEpollEventDriverWinAPIEventDriverKqueueEventDriver
TCP Socketsyesyesyes
UDP Socketsyesyesyes
USDSyesyesyes
DNSyesyesyesyes
Timersyesyesyesyes
Eventsyesyesyesyes
Unix Signalsyes²yes²
Filesyesyesyesyes
UI Integrationyes¹yes¹yesyes¹
File watcheryes²yes²yes
FeatureLibasyncEventDriver
TCP Sockets
UDP Sockets
USDS
DNS
Timers
Events
Unix Signals
Files
UI Integration
File watcher

¹ Manually, by adopting the X11 display connection socket

² Currently only supported on Linux

Open questions

  • Error code reporting
  • Adopting existing file descriptors (done for files)
  • Enqueued writes
  • Use the type system to prohibit passing thread-local handles to foreign threads

Available versions

0.8.9 0.8.8 0.8.7 0.8.6 0.8.5 0.8.4 0.8.3 0.8.2 0.8.1 0.8.0 0.7.1 0.7.0 0.6.0 0.5.7 0.5.6 0.5.5 0.5.4 0.5.3 0.5.2 0.5.1 0.5.0 0.4.0 0.3.0 0.2.0 0.1.2 0.1.1 ~master