Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/scar17off/owop-cpp-server


https://github.com/scar17off/owop-cpp-server

Last synced: 22 days ago
JSON representation

Awesome Lists containing this project

README

        

# OWOP C++ Server

This is a simple C++ server for the OWOP protocol. It is built using the uWebSockets library and the OpenSSL library.
This project is in early development and is not yet ready for production use.
I'm using it to learn about the OWOP protocol and to build a working server to use for testing the OWOP C++ client.

## Requirements
- [vcpkg](https://vcpkg.io/en/getting-started.html)
- [mingw-w64](https://www.mingw-w64.org/)
- [CMake](https://cmake.org/)
- [Git](https://git-scm.com/)
- [Pre-built OWOP client](https://github.com/OurSources/owop-client)
- [C++20 (C++ Standard 2020)](https://en.cppreference.com/w/cpp/20)

## Building

You need to have vcpkg and mingw-w64 installed and configured. Then you can build the project using CMake.

```sh
mkdir build
cd build
cmake .. -G "MinGW Makefiles"
mingw32-make
```

### Building with vcpkg

```sh
cmake .. -G "MinGW Makefiles" -DCMAKE_TOOLCHAIN_FILE=../vcpkg_root/scripts/buildsystems/vcpkg.cmake
mingw32-make
```

## Running
In the output folder you need to have `routing` directory with the extracted OWOP client files.
The output file is `x64/Debug/OWOP C++ Server.exe`. You can run it with:

```sh
./x64/Debug/OWOP C++ Server.exe
```

## Installing dependencies
The dependencies are:
- [uWebSockets](https://github.com/uNetworking/uWebSockets)
- [OpenSSL](https://github.com/openssl/openssl)

```sh
vcpkg install uwebsockets[core]:x64-mingw-dynamic
vcpkg install openssl:x64-mingw-dynamic
vcpkg install nlohmann-json3:x64-mingw-dynamic
```

# License

This project is licensed under the MIT License. See the [LICENSE](LICENSE.md) file for more details.

# Contributing

Contributions are welcome! Please feel free to submit a PR.