server/docs/file_tree.md

2.2 KiB

nm17/iotishnik-server [Rust]

Стандартная структура проекта на Rust с Cargo. Ниже описано содержимое src/.

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 для (де)сериализации.