A lightweight, high-performance C++ Redis server prototype built using ASIO for asynchronous networking.
- Asynchronous Communication: Leverages ASIO for non-blocking I/O operations.
- Simple API: Easy-to-use interface for sending Redis commands and receiving responses.
- Cross-Platform: Works on Windows, macOS, and Linux.
- Dependency-Free: Only requires ASIO (header-only library).
- C++ Compiler: Recommended C++23 (e.g., GCC, Clang, G++, MSVC).
- CMake: Version 3.10 or higher.
- Git: For cloning the repository and managing submodules.
Clone the repository and its submodules:
git clone --recurse-submodules https://github.com/Gabbar-v7/Aero.git
cd Aero
Use CMake to build the project:
mkdir build
cd build
cmake ..
cmake --build .
After building, run the executable:
./AeroRedisServer
Here’s an example of how to interact with Aero Redis Server using Redis Client:
Aero ❯ master* ❯ redis-cli -p 6377
127.0.0.1:6377> set name Gabbar
OK
127.0.0.1:6377>
127.0.0.1:6377> get name
Gabbar
127.0.0.1:6377> ping
PONG
127.0.0.1:6377>
SET key value
: Set a key-value pair.GET key
: Get the value of a key.DEL key
: Delete a key.PING
: Check if the server is alive.
Note: AeroRedisServer runs on default port 6377
Aero/
├── CMakeLists.txt # CMake build configuration
├── README.md # Project documentation
│
├── src/ # Source files
│ └── main.cpp # Starting point
│
└── libs/ # Third-party dependencies
└── asio/ # ASIO library (submodule)
- ASIO: A cross-platform C++ library for network and low-level I/O programming.
Contributions are welcome! If you’d like to contribute, please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bugfix.
- Make your changes and test them.
- Submit a pull request with a detailed description of your changes.
For more information, see the CONTRIBUTING.md file.
This project is licensed under the MIT LICENSE.
- ASIO: For providing a powerful and easy-to-use networking library.
- Redis: For being an awesome in-memory data store.
For questions or feedback, feel free to reach out:
- GitHub Issues: https://github.com/Gabbar-v7/Aero/issues