32
|
1
|
#+title: io |
|
2
|
#+author: Richard Westhaver |
|
3
|
#+description: |
34
|
4
|
#+setupfile: ../../../clean.theme |
32
|
5
|
|
|
6
|
IO library |
|
7
|
|
|
8
|
first-class backend is IO_URING. everything else defers to whatever is |
|
9
|
most portable (on Windows and Mac). The URING system provides low |
|
10
|
level bindings to IO_URING. |
|
11
|
|
|
12
|
We implement a high-level API for IO. The API is meant to be as simple |
|
13
|
as possible, while still providing a great deal of control over the |
|
14
|
primitive IO queues. |
|
15
|
|
|
16
|
Speed is the priority. |
|
17
|
|
|
18
|
- We will probably need a specialized vector class mapping/displaced directly to URING::IOVECs |
|
19
|
- io-stream doesn't share or inherit structure from sb-sys:fd-stream |
|
20
|
- io-socket doesn't share or inherit structure from sb-bsd-sockets:socket |
|
21
|
- prioritizing UDP/datagram/framed sockets over TCP/streamed |
|
22
|
- testing: |
|
23
|
- use NET/CODEC/TLV:TLV for passing simple messages from SQ->CQ |
|
24
|
- use IO-OP-NOP for estimating throughput and comparing implementations (rust/tokio) |