Simpdescubrir
Simpdiscover es una simple caja oxidada para facilitar el descubrimiento de servicios dentro de la red de área local (LAN) utilizando datagramas de transmisión UDP o "balizas".
El 'anunciador' de un servicio podría ser un proceso en otras máquinas u otros subprocesos o procesos en la misma máquina.
Objetivos
- Detección en toda la LAN de servicios nombrados y en qué IP se encuentran
- Sencillo de entender y utilizar
- Pequeño, pocas dependencias de la biblioteca y poca memoria y espacio de CPU.
- Formato de baliza simple que es fácil de usar y que no introduce soporte de formato de archivo específico en la biblioteca.
No metas
- Descubrimiento de servicios a través de LAN, WAN, la Web o en la nube.
Implementado hasta ahora
- Estructura BeaconSender que se puede configurar para enviar balizas:
- con un contenido de baliza específico Cadena
- en un puerto específico
- con métodos para:
- enviar para siempre en un bucle en un período de tiempo determinado
- enviar solo una baliza
- Estructura BeaconListener simple que se puede configurar para recibir balizas:
- coincidir con el contenido de un mensaje específico
- con un método que bloquea al remitente y espera hasta que se recibe un mensaje
- con un valor de tiempo de espera opcional para esperar o Ninguno para esperar indefinidamente
- Binarios simples de 'anunciar' y 'escuchar' que utilizan la biblioteca como ejemplos
- Algunas pruebas de documentos para mantener los documentos API correctos
- Acción de Github para compilar, luego verificar clippy y luego probar todo
'anunciar' binario
Ejecute este binario desde el repositorio usando cargo run --bin announce
o simplemente announce
si ha instalado la caja con carga.
Se necesita un parámetro de línea de comando opcional para especificar la cadena para que el mensaje de baliza anuncie: cargo run --bin announce -- Hello
'escuchar' binario
Ejecute este binario desde el repositorio usando cargo run --bin listen
o simplemente listen
si instaló la caja con cargo.
Se necesita un parámetro de línea de comando opcional para especificar la cadena que debe esperar el mensaje de baliza antes de salir: cargo run --bin listen -- Hello
Trabajo futuro
Tomé la mayoría de mis notas sobre trabajos futuros y las convertí en ediciones de GitHub.
Algunas son solo preguntas sobre cosas que no entiendo y me encantaría que los expertos en UDP y Rust me las explicaran.
Por favor comente o inicie alguno que le interese que se implemente.
Obviamente, los RP son bienvenidos, si van acompañados de algunos comentarios de documentos, pruebas de documentos o pruebas.
Desarrolladores
- Clona/bifurca el repositorio y descarga:
-
cd
en el directorio - Agregue cambios, agregue comentarios de documentos y/o pruebas y pruebas de documentos.
-
cargo build
-
cargo test
-
cargo clippy -- -D warnings
- Crear un PR
- Las acciones de Github seguirán los mismos pasos anteriores.
- Revisaré y fusionaré