-
Notifications
You must be signed in to change notification settings - Fork 81
Closed
Milestone
Description
Status of major features needed for Eio 1.0 (a tick means would be OK to ship in its current state):
Backends:
- Linux io_uring.
- Windows support #125 (can release as beta quality)
- Finish eio_posix backend #456
Non-essential backends (but would be good to check that the cross-platform API works for them before 1.0 if possible):
- MirageOS. Prototype (running dream-eio in a unikernel): https://github.com/TheLortex/eio-solo5
- Initial Javascript browser backend #405
Features:
- Concurrency primitives: Fibers, cancellation, promises, streams and semaphores.
- Make Waiters lock-free #382
Lock-free waiters. Should be faster, and also needed to handle signals correctly. - Multicore support: spawn new Eio and non-Eio domains.
- Decide and document thread-safety in cross-platform API #387
Sharing OS resources with other domains. - Networking: Clients and servers using TCP, UDP and Unix domain sockets.
- Add missing file operations #510
File-systems: Mostly working, but API is incomplete. - Signals abstraction #321
Signal handlers. - API for spawning sub-processes #126
Spawning processes. - Add task/worker pool similar to Domainslib task pool #512
High-level domain pools API. - Replace objects with variants #553
- Full tracing support #649
Integrations:
- Lwt_eio.
- Async_eio: proof-of-concept works, but requires changes to async.
- Domainslib (Document how to use Domainslib from Eio #489).
Testing:
- Unit tests (in
testsdirectory). - Benchmarks for synchronisation primitives (in
benchdirectory). - Stress tests for synchronisation primitives (in
stressdirectory; currently semaphore only). - Add more stress tests and benchmarks #450
Stress tests for OS access. - Fuzz tests for parsers/serialisers (in
fuzzdirectory). - Deploy at least one service using it in production.
Metadata
Metadata
Assignees
Labels
No labels