docs: add file tree with explanations #16
1 changed files with 46 additions and 0 deletions
46
docs/file_tree.md
Normal file
46
docs/file_tree.md
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
# nm17/iotishnik-server [Rust]
|
||||||
|
Стандартная структура проекта на Rust с Cargo.
|
||||||
|
Ниже описано содержимое `src/`.
|
||||||
|
|
||||||
|
- `main.rs`: точка входа, запускает сервер
|
||||||
|
(см. [web_server](#web_server) и [ingest_socket_server](#ingest_socket_server))
|
||||||
|
|
||||||
|
## ingest_protocol
|
||||||
|
- `packet_types.rs`: структуры для хранения данных с датчиков,
|
||||||
|
вспомогательные функции интеграции с serde и записи в БД.
|
||||||
|
- `parser.rs`: парсер пакетов в формате старого TCP/UDP API с #решётками#,
|
||||||
|
парсер MAC-ов.
|
||||||
|
- `error.rs`: enum для ошибок в этом модуле.
|
||||||
|
- `tests/`: тесты.
|
||||||
|
|
||||||
|
## ingest_socket_server
|
||||||
|
Сервер TCP/UDP API (work in progress).
|
||||||
|
|
||||||
|
## web_server
|
||||||
|
Сервер HTTP API на библиотеке Ntex.
|
||||||
|
|
||||||
|
- `mod.rs`: предоставляет функцию запуска веб-сервера.
|
||||||
|
- `app_error.rs`: enum для ошибок в этом модуле.
|
||||||
|
|
||||||
|
### web_server/old_app_api
|
||||||
|
HTTP API "Народного мониторинга" для приложений.
|
||||||
|
|
||||||
|
- `handlers/`: обработчики запросов.
|
||||||
|
- `types/`: структуры JSON-а запросов и ответов.
|
||||||
|
|
||||||
|
### web_server/old_device_sensor_api
|
||||||
|
HTTP API "Народного мониторинга" для загрузки данных с датчиков на сервер.
|
||||||
|
|
||||||
|
- `mod.rs`: основной обработчик запросов.
|
||||||
|
- `qs_parser.rs`: парсер аргументов GET-запроса /
|
||||||
|
тела POST-запроса в формате x-www-form-urlencoded.
|
||||||
|
|
||||||
|
### web_server/utils
|
||||||
|
- `mod.rs`: вспомогательные функции и макросы к веб-серверу.
|
||||||
|
- `redis.rs`: утилиты для работы с Redis-совместимой БД.
|
||||||
|
|
||||||
|
## utils
|
||||||
|
Вспомогательные структуры данных и функции.
|
||||||
|
|
||||||
|
- `mod.rs`: пока что только enum поддерживаемых единиц измерения, конвертация типов.
|
||||||
|
- `hifitime_serde.rs`: интеграция hifitime::Epoch с serde для (де)сериализации.
|
Loading…
Reference in a new issue