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_uring
with 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_uring
support (6.0 or newer)
Download and config uapi headers:
./build.sh uapi
Run the tests by executing:
./build.sh test
Or run them with optimizations enabled:
./build.sh test release
If you want to compiler with GCC, just pass the COMPILER
environment variable when executing build.sh
:
COMPILER="gcc" ./build.sh test
Lint the project by executing:
./build.sh lint
Format the project by executing:
./build.sh fmt