Simpdiscover
Simpdiscover — это простой пакет ржавчины, упрощающий обнаружение сервисов в локальной сети (LAN) с использованием дейтаграмм или «маяков» UDP Broadcast.
«Информатором» службы может быть процесс на другом компьютере или другой поток или процесс на том же компьютере.
Цели
- Обнаружение именованных служб в масштабе локальной сети и их IP-адрес.
- Простота понимания и использования
- Небольшой размер, мало зависимостей от библиотеки, небольшой объем памяти и процессора.
- Простой формат маяка, который прост в использовании и не требует поддержки определенных форматов файлов в библиотеке.
Нецели
- Обнаружение сервисов в локальных и глобальных сетях, в Интернете или в облаке.
Реализовано на данный момент
- Структура BeaconSender, которую можно настроить для отправки маяков:
- с конкретной строкой содержимого маяка
- на определенном порту
- с методами:
- отправлять навсегда в цикле в заданный период времени
- отправить только один маяк
- Простая структура BeaconListener, которую можно настроить для получения маяков:
- соответствие конкретному содержимому сообщения
- с методом, который блокирует отправителя и ждет, пока сообщение не будет получено
- с необязательным значением тайм-аута для ожидания или None для ожидания бесконечно
- Простые двоичные файлы «объявления» и «прослушивания», в которых в качестве примеров используется библиотека.
- Некоторые тесты документации, чтобы обеспечить правильность документации API.
- Действие Github для сборки, затем проверка резкости, а затем тестирование всего
«объявить» двоичный файл
Запустите этот бинарный файл из репозитория, используя cargo run --bin announce
или просто announce
установили ли вы крейт с грузом.
Требуется необязательный параметр командной строки, чтобы указать строку для сообщения маяка, которое должно быть объявлено: cargo run --bin announce -- Hello
«слушать» двоичный файл
Запустите этот бинарный файл из репозитория, используя cargo run --bin listen
или просто listen
если вы установили крейт с Cargo.
Требуется необязательный параметр командной строки, чтобы указать строку для сообщения маяка, которое следует ожидать перед выходом: cargo run --bin listen -- Hello
Будущая работа
Я сделал большую часть своих заметок о будущей работе и преобразовал их в выпуски GitHub.
Некоторые из них представляют собой просто вопросы о вещах, которых я не понимаю, и мне бы хотелось, чтобы эксперты по UDP и Rust объяснили мне их.
Пожалуйста, прокомментируйте или начните любой, который вы заинтересованы в реализации.
PR, очевидно, приветствуются, если они сопровождаются некоторыми комментариями к документации, тестами или тестами документации.
Разработчики
- Клонируйте/форкните репозиторий и загрузите:
-
cd
в каталог - Добавляйте изменения, добавляйте комментарии к документации и/или тесты и тесты документации.
-
cargo build
-
cargo test
-
cargo clippy -- -D warnings
- Создайте PR
- Действия Github будут выполнять те же шаги, что и выше.
- Я рассмотрю и объединю