diff --git a/docs/file_tree.md b/docs/file_tree.md new file mode 100644 index 0000000..400a922 --- /dev/null +++ b/docs/file_tree.md @@ -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 для (де)сериализации.