eventcore/README.md

48 lines
2.2 KiB
Markdown

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](https://vibed.org/).
[![Build Status](https://travis-ci.org/vibe-d/eventcore.svg?branch=master)](https://travis-ci.org/vibe-d/eventcore)
Supported drivers and operating systems
---------------------------------------
Driver | Linux | Windows | macOS | FreeBSD
------------------|---------|---------|---------|--------
SelectEventDriver | yes | yes | yes¹ | yes¹
EpollEventDriver | yes | — | — | —
WinAPIEventDriver | — | yes | — | —
KqueueEventDriver | — | — | yes¹ | yes¹
¹ planned, but not currenly implemented
Driver development status
-------------------------
Feature | SelectEventDriver | EpollEventDriver | WinAPIEventDriver | KqueueEventDriver
-----------------|-------------------|------------------|-------------------|------------------
TCP Sockets | yes | yes | — | —
UDP Sockets | yes | yes | — | —
USDS | yes | yes | — | —
DNS | yes | yes | — | —
Timers | yes | yes | yes | —
Events | yes | yes | yes | —
Unix Signals | yes² | yes² | — | —
Files | yes | yes | yes | —
UI Integration | yes¹ | yes¹ | yes | —
File watcher | yes² | yes² | yes | —
¹ 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