changelog shortlog graph tags branches changeset files revisions annotate raw help

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

changeset 32: f3811af6b10d
child: bc53e27c0163
author: Richard Westhaver <ellis@rwest.io>
date: Sun, 16 Jun 2024 22:16:34 -0400
permissions: -rw-r--r--
description: fix
1 #+title: io
2 #+author: Richard Westhaver
3 #+description:
4 #+setupfile: https://cdn.compiler.company/org/clean.theme
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)