Skip to main content

simoom_sys/
lib.rs

1//! Operating-system layer of simoom: epoll, io_uring, kqueue, IOCP, sockets, SIMD scanning and
2//! hardware crypto intrinsics. This is the only simoom crate that contains `unsafe` code; every
3//! `unsafe` block carries a `// SAFETY:` comment.
4//!
5//! - [`net`]: owned non-blocking TCP and UDP sockets ([`net::Socket`]).
6//! - [`udp`]: batched datagram I/O with GRO/GSO, ECN and packet info.
7//! - [`driver`]: the completion-style I/O driver over epoll, io_uring, IOCP and kqueue, with a
8//!   cross-thread [`driver::Waker`].
9//! - [`time`]: cheap monotonic clocks. [`cpu`]: CPU count and thread affinity.
10//! - [`alloc`]: a counting global allocator for memory measurements.
11
12/// SIMD byte scanning for the HTTP parsers (owned by the simoom-http1 work).
13pub mod scan;
14
15/// Hardware crypto intrinsics behind safe wrappers: AES-NI, PCLMULQDQ, SHA-NI, ARMv8 AES/PMULL
16/// (owned by the simoom-tls work).
17pub mod arch;
18
19mod os;
20
21pub mod alloc;
22/// Codec kernels with CPU features picked at run time: BMI2 (owned by the simoom-compress work).
23pub mod bits;
24/// Codec inner loops as unchecked pointer code (owned by the simoom-compress work).
25pub mod codec;
26/// The OS store of trusted root certificates (Windows), for TLS clients.
27pub mod certstore;
28pub mod cpu;
29/// Per-thread CPU time (owned by the facade work, for the stall watchdog).
30pub mod cputime;
31pub mod driver;
32pub mod mpsc;
33pub mod net;
34pub mod time;
35pub mod udp;
36/// SanitizerCoverage callbacks for the coverage-guided fuzzer (test-only, feature `sancov`).
37#[cfg(feature = "sancov")]
38pub mod sancov;