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-threaddriver::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/sendmmsgon Linux with GRO/GSO (UDP_GRO/UDP_SEGMENT), ECN and packet-info control messages;WSARecvMsg/WSASendMsgon Windows with URO/USO, ECN and packet info; plainrecvmsg/sendmsgon macOS and BSD (no control messages there yet).