GodSpeed is a C++ library designed to simplify the implementation of networking functionalities such as TCP and UDP communication on both Windows and Linux.
- TCP Server: Handle multiple clients with a robust and scalable architecture.
- TCP Client: Connect to remote servers and manage communication seamlessly.
- UDP Socket: Send and receive datagrams with ease.
- Event-Driven Architecture: Efficiently manage events and I/O operations.
- Multi-threading Support: Built-in support for handling multiple clients concurrently.
- C++17 or later
- CMake (3.15 or later)
- Clone the repository:
git clone https://github.com/Dorivika/GodSpeed.git cd GodSpeed - Create a build directory and navigate to it:
mkdir build && cd build
- Configure the project with CMake:
cmake ..
- Build the library and examples:
make
After building the project, you can run the example programs located in the examples directory.
g++ -std=c++17 -Iinclude -o TcpServerExample examples/TcpServerExample.cpp src/TcpServer.cpp src/NetworkUtils.cpp -lws2_32 -lpthreadThis will start a simple TCP server.
g++ -std=c++17 -Iinclude -o TcpClientExample examples/TcpClientExample.cpp src/TcpClient.cpp src/NetworkUtils.cpp -lws2_32 -lpthreadThis will start a simple TCP client.
- Add TLS support using OpenSSL.
- Implement a thread pool for efficient resource management.
- Create a higher-level API for simplified usage.
- Add support for non-blocking I/O.