The Vortex Project is a high-performance, low-level C++ framework that focuses on memory management, system calls, and efficient I/O operations using io_uring. It also includes several test files to demonstrate basic system functionalities such as memory allocation, string handling, and system map interactions.
This project is built with modern C++ standards (C++23) and leverages Clang-19 compiler features. It contains a variety of tests and system wrappers designed for optimal performance and usage in freestanding environments, i.e., without relying on standard libraries.
- System Call Wrappers: Low-level syscall abstractions for Linux, covering common operations such as file handling, memory management, and I/O operations using
io_uring. - Memory Management: Custom memory allocators and page management.
- I/O Operations: Efficient I/O using
io_uringwith detailed error handling.
This project is built with performance as a top priority, running without dependencies on libc or libc++. For enhanced efficiency, it avoids both C++'s RAII and exceptions, using a custom error-handling and allocator system instead. Pinned heap memory ensures memory safety, while ubsan support helps detect bugs at runtime. Additionally, the project leverages SIMD to accelerate data processing.
To build this project, you need:
- Clang 19 or newer
- GCC 14 or newer
- C++23 support
- A Linux system with
io_uringsupport (6.0 or newer)
Download and config uapi headers:
./build.sh uapiRun the tests by executing:
./build.sh testOr run them with optimizations enabled:
./build.sh test releaseIf you want to compiler with GCC, just pass the COMPILER environment variable when executing build.sh:
COMPILER="gcc" ./build.sh testLint the project by executing:
./build.sh lintFormat the project by executing:
./build.sh fmt