changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > org > docs / annotate core/lib/io.org

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