eventcore ~io_uring
Pro-actor based abstraction layer over operating system asynchronous I/O facilities.
To use this package, run the following command in your project's root directory:
Manual usage
Put the following dependency into your project's dependences section:
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:
Supported drivers and operating systems
Driver | Linux | Windows | macOS | FreeBSD | Android | iOS |
---|---|---|---|---|---|---|
SelectEventDriver | yes | yes | yes | yes¹ | yes | — |
EpollEventDriver | yes | — | — | — | yes | — |
WinAPIEventDriver | — | yes | — | — | — | — |
KqueueEventDriver | — | — | yes | yes¹ | — | — |
LibasyncEventDriver | —¹ | —¹ | —¹ | —¹ | — | — |
UringEventDriver | —¹ | no | no | no | unknown | no |
¹ 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 | Uring |
---|---|---|---|---|---|---|
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 | — | yes |
UI Integration | yes¹ | 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
- Registered by Sönke Ludwig
- ~io_uring released 6 months ago
- vibe-d/eventcore
- MIT
- Copyright © 2016-2018 Sönke Ludwig
- Dependencies:
- during, taggedalgebraic
- Versions:
-
0.9.26 2023-Sep-16 0.9.25 2023-Mar-17 0.9.24 2023-Mar-16 0.9.23 2023-Mar-03 0.9.22 2023-Jan-21 - Download Stats:
-
-
660 downloads today
-
2742 downloads this week
-
12301 downloads this month
-
1544241 downloads total
-
- Score:
- 4.6
- Short URL:
- eventcore.dub.pm