kb · c · ecosystem

Системные библиотекиSystem libraries

Библиотеки с чистым C ABI — в первую очередь kernel bypass и low-latency сетевые транспорты, которым нет естественного места в cpp/rust/go/ecosystem, потому что это C в исходном виде, не обёртка. Плюс build tooling и тестирование.Libraries with a plain C ABI — primarily kernel-bypass and low-latency network transports, which have no natural home in cpp/rust/go/ecosystem since this is C in its original form, not a wrapper. Plus build tooling and testing.

Kernel bypass / низкоуровневая сетьKernel bypass / low-level networking

из разговора про SBE + Aeron в cranfrom the SBE + Aeron discussion for cran
DPDKData Plane Development Kit — poll-mode доступ к NIC из userspace, ~2-5 мкс, ~100-200 циклов CPU/пакет. Родной язык — C; Go/Rust только community-биндинги.Data Plane Development Kit — poll-mode userspace NIC access, ~2-5 μs, ~100-200 CPU cycles/packet. Native language is C; Go/Rust only have community bindings.interview liburing (io_uring)кольцевые буферы submission/completion для async I/O без syscall на операцию — 8-15 мкс в режиме SQPOLL. Лучшая мультиязычная поддержка среди этой группы (Rust: tokio-uring; Go: giouring без cgo).submission/completion ring buffers for async I/O with no per-operation syscall — 8-15 μs in SQPOLL mode. Best cross-language support in this group (Rust: tokio-uring; Go: giouring, no cgo). libbpf / AF_XDPгибрид между сокетом и полным kernel bypass — хук в NIC-драйвер, без выделенных ядер под poll loop, в отличие от DPDK.a hybrid between a socket and full kernel bypass — hooks into the NIC driver, no dedicated poll-loop cores unlike DPDK. libibverbs (RDMA)верб-интерфейс rdma-core — сеть пишет прямо в память удалённого хоста, 1-3 мкс. Требует InfiniBand/RoCE. Неожиданно зрелые Rust-биндинги (ibverbs crate).the rdma-core verbs interface — the network writes straight into a remote host's memory, 1-3 μs. Needs InfiniBand/RoCE. Surprisingly mature Rust bindings (the ibverbs crate). Aeron (C client + Media Driver)транспорт для SBE — C-реализация клиента и Media Driver, C++ лишь тонкая обёртка сверху. Подробности формата/RPC — см. cross-platform.the transport for SBE — a C implementation of the client and Media Driver, with C++ as a thin wrapper on top. Format/RPC details — see cross-platform.

Сборка и тестированиеBuild and testing

статусstatus

Каркас: 2 категории, 9 пунктов. kernel-bypass/ зафиксирован из разговора про замену gRPC/Redpanda на SBE + Aeron в cran — конкретные цифры задержек (DPDK 2-5 мкс, RDMA 1-3 мкс, io_uring SQPOLL 8-15 мкс) и языковая поддержка каждой библиотеки уже сверены и совпадают с записями в glossary/. Aeron включён сюда, а не только в cross-platform, потому что для cran релевантна именно его C-реализация (Media Driver + клиент), в обход JVM в hot path — C++ Cluster-компонент существует только на Java и в этот раздел не попадает.Skeleton: 2 categories, 9 entries. kernel-bypass/ was locked in from the conversation about replacing gRPC/Redpanda with SBE + Aeron in cran — the specific latency figures (DPDK 2-5 μs, RDMA 1-3 μs, io_uring SQPOLL 8-15 μs) and each library's language support are already cross-checked and match the entries in glossary/. Aeron is included here, not just in cross-platform, because what matters for cran is specifically its C implementation (Media Driver + client), bypassing the JVM on the hot path — the Cluster component exists only in Java and doesn't belong in this section.