No description
| examples | ||
| lib | ||
| source/eventcore | ||
| tests | ||
| .editorconfig | ||
| .gitignore | ||
| .travis.yml | ||
| appveyor.yml | ||
| dub.sdl | ||
| LICENSE.txt | ||
| LICENSE_DE.txt | ||
| README.md | ||
| travis-ci.sh | ||
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.
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.082.0
- DMD 2.081.2
- DMD 2.080.1
- DMD 2.079.0
- DMD 2.078.3
- DMD 2.077.1
- DMD 2.076.1
- LDC 1.11.0
- LDC 1.10.0
- LDC 1.9.0
- LDC 1.8.0
- LDC 1.7.0
- LDC 1.6.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