changelog shortlog graph tags branches changeset files revisions annotate raw help

Mercurial > org > docs / 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
1 #+title: io
2 #+author: Richard Westhaver
3 #+description:
4 #+setupfile: ../../../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)