-
Notifications
You must be signed in to change notification settings - Fork 26
Network Transport Framework
Matt Millett edited this page Apr 26, 2023
·
1 revision
The following outline describes the future direction of the project and general things to-do.
- Features
- Implement something like "send all" and "receive all" functions for
ntsi::StreamSocket
to provide convenience to users of blocking sockets to send/receive all desired data possibly over multiple system calls - Support the specification of relative timeouts when describing deadlines for timers and socket operations
- Support zero-copy transmissions on Linux
- Support sending and receiving multiple datagram messages in a single system call, where supported (
sengmmsg
/recvmmsg
) - Implement
ntco::IoRing
on Windows using their API
- Implement something like "send all" and "receive all" functions for
- Fixes
- Detach a socket from a reactor asynchronously
- Cancel all pending operations on a
ntci::ProactorSocket
asynchronously
- Optimization
- Allow the user to mask the announcement of certain "events" detected passively during the operation of an asynchronous socket
- Improve the implementation of
ntci::Reactor
usingio_uring
on Linux - Attempt to split the single mutex used by, e.g.,
ntcr::StreamSocket
into two mutexes, one for reading and one for writing, so that readers don't block writers and vice-versa - Revise the virtual write queue data structures so that any potentially-batchable buffer array is built/adjusted at the time each send operation is initiated, rather than re-built from scratch each time a socket is detected to be writable
- Operations
- Re-establish a contiguous integration process in an open-source context, possibly using GitHub Actions
- Integrate with certain popular package managers (e.g. debian, rpm, conan, vcpkg, etc.)
- Adopt the new BDE build system to replace the old BDE build system as an alternate method for build this project