Is it a robot? Is it an app? It's an over-engineered + in the terminal!
This project arises from the personal interests of its creator, and has only a vague direction and purpose — to be developed; to be a stage for learning various concepts and patterns in programming (and beyond).
To that end, linebot is available to others who may find it a suitable stage
for their own learning: although a conscious decision has been made not to
attach a license to it at least as of yet, feel free to drop a line to
ivanovkirilg@gmail.com if you want a formal permission to use it, or if you
wish to contribute.
Currently, this project depends on:
- cmake_helpers (MIT License)
- zpp::bits (MIT License)
- gtest (BSD-3-Clause license)
linebot is built using CMake on Linux, in C++20.
To save on maintenance effort, it does not (yet) try to be multi-platform or to support a wide range of compilers, language standards, build systems, etc.
It aims to be runnable out-of-the-box on GitHub Codespaces but is more actively developed in a WSL2 Ubuntu environment.
- On GitHub, click "Code" → "Create codespace on main",
- Wait for all blue progress bars in VS Code to go away,
- Patiently wait for "Running postCreateCommand..." to go away.
GitHub codespaces are cloud Docker containers that integrate with VS Code. You can use a local Docker engine and VS Code to achieve the same setup as A).
The creator of this project primarily uses an Ubuntu on WSL2. This is likely to be less straight-forward than A) or B) for you, depending on what packages you have installed or not.
mkdir build
cd build
cmake ..
make -jAfter the initial build above, it is recommended to stay in build/ and run
make -j for subsequent builds.
After a build, run the automated tests with:
ctestfor all tests,ctest -LE known-failto exclude known broken tests, if any.
Or run the application:
DRVR/DRVR_main <port> &to start the 'Driver' process in the background,MAIN/MAIN <port>to start the main process with terminal user interface,- ... where
<port>is the same number (e.g.9999).