9 repositorios
Low-level engines providing direct hardware access via zero-copy and DMA techniques for maximum throughput.
Distinct from Disk Block I/O: Neither general I/O utilities nor block I/O drivers capture the identity of a complete high-performance I/O engine.
Explore 9 awesome GitHub repositories matching operating systems & systems programming · High Performance I/O Engines. Refine with filters or upvote what's useful.
Seastar is a C++ server application framework and asynchronous programming library designed for building high-performance, shared-nothing server applications. It functions as a high-performance I/O engine providing direct disk and network access through a shared-nothing framework that partitions data and execution across CPU cores. The framework distinguishes itself through a thread-per-core architecture that eliminates locking and resource contention by assigning one execution thread to each physical CPU core. It implements a userspace TCP/IP stack and kernel-bypass techniques, integrating w
Provides a high-performance I/O engine for direct disk and network access using zero-copy and DMA-based APIs.
Apache Tomcat is an open-source implementation of the Jakarta Servlet, Pages, Expression Language, and WebSocket specifications, serving as a container for running Java web applications. It provides a modular architecture with a servlet container, connector abstraction for multiple I/O models, and a pipeline-based request processing system that handles cross-cutting concerns through composable components. The server supports container-managed security with configurable realms for authentication against JDBC, LDAP, or memory-based credential stores, and offers TLS encryption with optional Open
Leverages the Apache Portable Runtime for improved performance and OpenSSL integration.
Mio is a low-level I/O library for Rust that provides an event-driven framework for monitoring multiple network sockets and file descriptors. It acts as a portable wrapper for operating system native polling systems, including epoll, kqueue, and IOCP, allowing applications to trigger events when resources are ready for reading or writing without blocking the execution thread. The library provides a non-blocking socket interface for managing TCP, UDP, and Unix sockets. It distinguishes itself through a vectored I/O implementation, enabling scatter-gather reads and writes across multiple buffer
Enables scatter-gather reads and writes across multiple buffers to improve transfer efficiency and reduce system call overhead.
fio es una herramienta de benchmarking de rendimiento de almacenamiento y generador de cargas de trabajo de E/S sintéticas. Funciona como un perfilador de dispositivos de almacenamiento y motor de reproducción de trazas de E/S, permitiendo la medición del throughput y la latencia para dispositivos de almacenamiento y sistemas de archivos. El proyecto se distingue por su capacidad para actuar como un estresador de almacenamiento distribuido, gestionando múltiples backends de servidores remotos a través de un único controlador para evaluar el almacenamiento en red. También incluye capacidades especializadas para el análisis de deduplicación de almacenamiento mediante la generación de buffers de datos redundantes para probar la eficiencia de los subsistemas de deduplicación. La herramienta cubre un amplio rango de capacidades, incluyendo la simulación de cargas de trabajo de E/S complejas con tamaños de bloque y profundidad de E/S controlables, el análisis de inactividad de CPU y la recolección de estadísticas de dispositivos. Proporciona observabilidad mediante visualización de métricas de rendimiento, histogramas de latencia y monitoreo de estado estable. Las cargas de trabajo pueden dispararse mediante argumentos de línea de comandos o archivos de configuración detallados para automatizar escenarios de benchmarking complejos.
Provides a common API abstraction layer to support diverse I/O engines and various operating systems.
HP-Socket is a networking library for building scalable TCP, UDP, and HTTP servers and clients with event-driven I/O and SSL encryption. It provides a high-performance TCP server framework, an HTTP request handler that parses incoming requests and generates responses, and a UDP communication library for low-latency data transfer, all with optional SSL encryption for secure communication. The library is built on a completion-port-based I/O architecture that uses Windows I/O Completion Ports for scalable asynchronous socket operations. It features a connection-pooled agent architecture for mana
Ships a completion-port-based I/O architecture using Windows IOCP for scalable asynchronous socket operations.
monoio es un runtime asíncrono y ejecutor de alto rendimiento para Rust. Implementa un modelo de concurrencia thread-per-core que fija las tareas a núcleos de CPU específicos para eliminar la sobrecarga de sincronización y la migración de datos. El runtime aprovecha la interfaz io_uring para realizar llamadas al sistema no bloqueantes y reducir la copia de memoria entre el modo kernel y el modo usuario. Utiliza un controlador de E/S de alto rendimiento y envoltorios TCP zero-copy para gestionar la transferencia de datos a través de buffers de memoria compartida. El proyecto proporciona capacidades para la gestión de afinidad de núcleos de CPU, programación de sistemas de baja latencia y redes de alto rendimiento. Incluye un backend de controlador de E/S conectable y configuraciones para el bloqueo de memoria con el fin de mantener buffers estables entre el espacio de usuario y el kernel.
Allows switching between different kernel interface modes to balance performance and compatibility.
Asterinas es un kernel de sistema operativo con seguridad de memoria diseñado para prevenir condiciones de carrera (data races) y corrupción de memoria. Funciona como un kernel compatible con la ABI de Linux, permitiendo la ejecución de binarios de Linux existentes y cargas de trabajo en contenedores mientras proporciona un modelo de distribución de sistema operativo declarativo. El proyecto se distingue por actuar como host de contenedores de máquinas virtuales y como SO invitado de computación confidencial, permitiendo su ejecución dentro de entornos de ejecución confiables (TEE) aislados por hardware como Intel TDX. Implementa una base de computación confiable mínima al aislar operaciones inseguras de bajo nivel y separa los mecanismos centrales del kernel de las implementaciones de políticas específicas. El sistema cubre una amplia gama de capacidades, incluyendo gestión de memoria física y virtual, multiprocesamiento simétrico y abstracción de hardware para varias arquitecturas de CPU. También incluye soporte para runtimes de contenedores seguros, un conjunto completo de primitivas de red y sockets, y una cadena de herramientas especializada para la compilación y emulación del kernel. El proyecto admite el despliegue en múltiples arquitecturas en plataformas x86-64, RISC-V 64 y LoongArch 64.
Implements scatter-gather reads and writes across multiple buffers to reduce system call overhead.
fclones is a command-line tool designed to locate identical files across a filesystem by comparing file sizes and cryptographic hashes. It functions as a parallel filesystem scanner and a deduplication utility that identifies duplicate files to reclaim disk space. The tool distinguishes itself through a persistent hash cache system that stores hashes and metadata on disk to accelerate repeated scans. It employs a multi-phase scanning process and device-aware parallel I/O, which adjusts thread pools based on whether the storage is an SSD or HDD to maximize throughput. Beyond discovery, the pr
Scans large volumes of data using parallel I/O and hardware-aware scheduling to find duplicates efficiently.
TCP-IP-NetworkNote is a comprehensive technical reference and guide for implementing network communication using TCP and UDP sockets in C and C++. It provides a detailed manual for using the POSIX socket API and covers the implementation of network protocols, synchronous and asynchronous I/O patterns, and concurrent programming models. The project is distinguished by its focus on cross-platform networking, offering a detailed comparison of socket implementation details and adaptation utilities between Linux and Windows Winsock environments. It specifically addresses the differences in header
Implements gather and scatter I/O to read or write data from multiple disjoint buffers in one system call.