-
gss allows user to schedule tasks with a limited time budget from a web-front end.
-
Central to the working of this program is a producer consumer task queue that gets enqueued and dequeued concurrently.
-
We have used a queue that is backed by a doubly linked list for fast [O(n)] enqueue and queue operations. All functions in this list have been unit tested.
This project requires the following tools to be installed to work:
- C++20 and up
- ccache
- Ninja
- mold
- Boost (ASIO, Beast) for C++ networking.
- nlohmann/json for JSON SerDe.
- spdlog for logging
- Catch2 for testing.
# Inside project root.
cmake -B build/ -S . -G "Ninja Multi-Config"
# Or for faster builds, which turn off most optimizations and safeguards.
cmake -B build/ -S . --preset unixlike-clang-debug-fast
# Inside gss/build
cmake --build . -j 8
# Then run
gss-server --address 0.0.0.0 --port 8080 --threads 4