2.2 KiB
2.2 KiB
nm17/iotishnik-server [Rust]
Стандартная структура проекта на Rust с Cargo.
Ниже описано содержимое src/
.
main.rs
: точка входа, запускает сервер (см. web_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 для (де)сериализации.