score-back/README.md
Artur Mukhamadiev b28c1b8e7f [docs] added docs folder
moved uml diagram to docs folder
changed readme communcation model to a result image view
2026-02-20 23:51:57 +03:00

86 lines
1.8 KiB
Markdown

# Cloud Point RPC
Communication JSON RPC protocol and implementation with Unity Scene.
## TODO
- [ ] Server implementation with C-API for Unity
- [ ] Client correct implementation with OpenCV
## API Documentation
See [API.md](API.md) for detailed request/response formats.
## Development
The project uses **Meson** build system and **C++20**.
### Dependencies
- Meson, Ninja
- GCC/Clang (C++20 support)
- Git (for subprojects)
### Build & Run
```bash
git submodule init
git submodule update
meson setup build
meson compile -C build
./build/src/cloud_point_rpc_server config.yaml
```
#### Build on windows
It's assumed that you have `GCC` and `make`/`ninja` installed on your system (and available in `PATH`)
```powershell
## FIRST OF ALL!
git submodule init
git submodule update
# Next python:
python3 -m venv .\venv
.\.venv\Scripts\Activate.ps1
pip install meson cmake
meson setup -Ddefault_library=static build
meson compile -C build
# To correctly get dlls:
meson devenv -C build
## .\build\tests\unit_tests < for dummy test
## .\build\src\.. < produced execs and libs
```
### Testing
```bash
meson test -C build -v
```
## Docker
You can build and run the cli using `Docker`.
### 1. Build Image
```bash
docker build -t cloud-point-rpc .
```
### 2. Run Container
The cli will try to connect to a **running server** on ip and port defined in config.yml file. (defined in `config.yaml` inside the image).
For simplicity, it's better to use a host network, so you will not have any headache with accessability.
> _Server is not configured to run through container, if you need, contact me_
You also can mount your own `config.yaml` to override the default settings:
```bash
docker run --network=host -it -v $(pwd)/my_config.yaml:/app/config.yaml cloud-point-rpc
```
## Communication model
![Communicatoin model plantuml diagram](docs/cm.png)