No description
  • D 98.3%
  • Meson 1.4%
  • Shell 0.3%
Find a file
2021-03-02 16:08:32 +01:00
.github/workflows Test 32-bit Windows build. 2021-01-12 19:05:56 +01:00
debian Patch 2021-03-02 16:08:32 +01:00
examples Fix compile error in http server example. 2017-01-23 11:03:36 +01:00
lib Implement WinAPI based TCP socket support. 2017-06-24 22:31:16 +02:00
source/eventcore Meson: port dub configurations to Meson options 2021-03-01 22:27:37 +01:00
tests Fix recursive directory watcher test. 2020-10-24 17:03:01 +02:00
.editorconfig Add .editorconfig. 2017-01-16 21:40:14 +01:00
.gitignore Update .gitignore. 2017-03-24 09:06:28 +01:00
dub.sdl Remove support for OPTLINK builds. 2021-01-12 19:00:40 +01:00
LICENSE.txt Add LICENSE files and fix package license field. 2018-10-02 11:09:26 +02:00
LICENSE_DE.txt Add LICENSE files and fix package license field. 2018-10-02 11:09:26 +02:00
meson.build First packaging attempt 2021-03-02 15:53:58 +01:00
meson_options.txt Meson: port dub configurations to Meson options 2021-03-01 22:27:37 +01:00
README.md badge moves to travis-ci.com 2020-10-30 16:27:26 +09:00
run-ci.sh Attempt to rerun flaky tests to avoid having to rerun the entire GitHub action. 2020-11-26 14:57:08 +01:00

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.

The API documentation is part of vibe.d:

DUB Package Posix Build Status Windows Build Status

Supported drivers and operating systems

Driver Linux Windows macOS FreeBSD Android iOS
SelectEventDriver yes yes yes yes¹ — —
EpollEventDriver yes — — — — —
WinAPIEventDriver — yes — — — —
KqueueEventDriver — — yes yes¹ — —
LibasyncEventDriver —¹ —¹ —¹ —¹ — —

¹ planned, but not currenly implemented

Supported compilers

The following compilers are tested and supported:

  • DMD 2.087.1
  • DMD 2.086.1
  • DMD 2.085.1
  • DMD 2.084.1
  • DMD 2.079.0
  • LDC 1.17.0
  • LDC 1.16.0
  • LDC 1.15.0
  • LDC 1.14.0
  • LDC 1.13.0
  • LDC 1.9.0

Driver development status

Feature \ EventDriver Select Epoll WinAPI Kqueue Libasync
TCP Sockets yes yes yes yes —
UDP Sockets yes yes yes yes —
USDS yes yes — yes —
DNS yes yes yes yes —
Timers yes yes yes yes —
Events yes yes yes yes —
Unix Signals yes² yes — — —
Files yes yes yes yes —
UI Integration yes¹ yes¹ yes yes¹ —
File watcher yes² yes yes yes² —
Pipes yes yes — yes —
Processes yes yes — yes —

¹ Manually, by adopting the X11 display connection socket

² Systems other than Linux use a polling implementation

Open questions

  • Error code reporting
  • Enqueued writes
  • Use the type system to prohibit passing thread-local handles to foreign threads