Skip to main content

Crate simoom_sys

Crate simoom_sys 

Source
Expand description

Operating-system layer of simoom: epoll, io_uring, kqueue, IOCP, sockets, SIMD scanning and hardware crypto intrinsics. This is the only simoom crate that contains unsafe code; every unsafe block carries a // SAFETY: comment.

  • net: owned non-blocking TCP and UDP sockets (net::Socket).
  • udp: batched datagram I/O with GRO/GSO, ECN and packet info.
  • driver: the completion-style I/O driver over epoll, io_uring, IOCP and kqueue, with a cross-thread driver::Waker.
  • time: cheap monotonic clocks. cpu: CPU count and thread affinity.
  • alloc: a counting global allocator for memory measurements.

Modules§

alloc
A counting global allocator for memory measurements in tests and benchmarks.
arch
Hardware crypto intrinsics behind safe wrappers: AES-NI, PCLMULQDQ, SHA-NI, ARMv8 AES/PMULL (owned by the simoom-tls work). Hardware crypto intrinsics behind safe wrappers, with runtime detection, and the operating system’s random number source.
bits
Codec kernels with CPU features picked at run time: BMI2 (owned by the simoom-compress work). Codec kernels with CPU features picked at run time (owned by the simoom-compress work).
certstore
The OS store of trusted root certificates (Windows), for TLS clients. The operating system’s trusted root certificates, for TLS clients.
codec
Codec inner loops as unchecked pointer code (owned by the simoom-compress work). Codec inner loops as unchecked pointer code (owned by the simoom-compress work).
cpu
CPU count and thread affinity.
cputime
Per-thread CPU time (owned by the facade work, for the stall watchdog). Per-thread CPU time, for telling a slow handler from a preempted thread.
driver
A completion-style I/O driver, one per event-loop thread.
mpsc
A lock-free multi-producer, single-consumer queue: any thread pushes, one thread takes everything at once.
net
Non-blocking TCP and UDP sockets on raw file descriptors (Unix) and SOCKETs (Windows).
scan
SIMD byte scanning for the HTTP parsers (owned by the simoom-http1 work). SIMD byte scanning for the HTTP parsers, with runtime detection and a scalar fallback.
time
Cheap monotonic clocks.
udp
Batched UDP I/O with per-datagram metadata: recvmmsg/sendmmsg on Linux with GRO/GSO (UDP_GRO/UDP_SEGMENT), ECN and packet-info control messages; WSARecvMsg/WSASendMsg on Windows with URO/USO, ECN and packet info; plain recvmsg/sendmsg on macOS and BSD (no control messages there yet).