Découvrez simplement
Simpdiscover est une simple caisse de rouille pour faciliter la découverte de services au sein du réseau local (LAN) à l'aide de datagrammes de diffusion UDP ou de « balises ».
L'« annonceur » d'un service peut être un processus sur une autre machine, ou un autre thread ou processus sur la même machine.
Objectifs
- Détection à l'échelle du réseau local des services nommés et de leur adresse IP
- Simple à comprendre et à utiliser
- Petit, peu de dépendances sur la bibliothèque et faible empreinte mémoire et CPU
- Format de balise simple, facile à utiliser et qui n'introduit pas de support de format de fichier spécifique dans la bibliothèque
Non-objectifs
- Découverte de services sur les réseaux LAN, WAN, le Web ou dans le cloud.
Mis en œuvre jusqu'à présent
- Structure BeaconSender qui peut être configurée pour envoyer des balises :
- avec un contenu de balise spécifique String
- sur un port spécifique
- avec des méthodes pour :
- envoyer pour toujours en boucle à une période donnée
- envoyer une seule balise
- Structure BeaconListener simple qui peut être configurée pour recevoir des balises :
- faire correspondre le contenu d'un message spécifique
- avec une méthode qui bloque l'expéditeur et attend qu'un message soit reçu
- avec une valeur de délai d'attente facultative à attendre ou Aucun pour attendre indéfiniment
- Binaires simples « annoncer » et « écouter » qui utilisent la bibliothèque comme exemples
- Quelques tests de documentation pour que la documentation de l'API reste correcte
- Action Github pour construire puis vérifier clippy puis tout tester
binaire « annoncer »
Exécutez ce binaire à partir du dépôt en utilisant cargo run --bin announce
ou announce
simplement si vous avez installé la caisse avec cargo.
Il faut un paramètre de ligne de commande facultatif pour spécifier la chaîne du message de balise à annoncer : cargo run --bin announce -- Hello
'écouter' binaire
Exécutez ce binaire à partir du dépôt en utilisant cargo run --bin listen
ou listen
simplement si vous avez installé la caisse avec cargo.
Il faut un paramètre de ligne de commande facultatif pour spécifier la chaîne que le message de balise doit attendre avant de quitter : cargo run --bin listen -- Hello
Travaux futurs
J'ai pris la plupart de mes notes sur les travaux futurs et les ai converties en numéros GitHub.
Certaines ne sont que des questions sur des choses que je ne comprends pas et j'aimerais que des experts en UDP et en rouille me les expliquent.
Veuillez commenter ou démarrer celui qui vous intéresse.
Les PR sont évidemment les bienvenus, s'ils sont accompagnés de quelques commentaires de doc, tests de doc ou tests.
Développeurs
- Clonez/forkez le dépôt et téléchargez :
-
cd
dans le répertoire - Ajoutez des modifications, ajoutez des commentaires de document et/ou des tests et des tests de document.
-
cargo build
-
cargo test
-
cargo clippy -- -D warnings
- Créer un PR
- Les actions Github exécuteront les mêmes étapes que ci-dessus
- Je vais réviser et fusionner