Simpdiscover
Simpdiscover é uma caixa de ferrugem simples para facilitar a descoberta de serviços dentro da rede local (LAN) usando datagramas de transmissão UDP ou "beacons".
O 'anunciador' de um serviço pode ser um processo em outras máquinas, ou outro thread ou processo na mesma máquina.
Metas
- Detecção em toda a LAN de serviços nomeados e em que IP eles estão
- Simples de entender e usar
- Pequenas, poucas dependências da biblioteca e pouca memória e consumo de CPU
- Formato de beacon simples que é fácil de usar e que não introduz suporte a formatos de arquivo específicos na biblioteca
Não-metas
- Descoberta de serviços em LANs, WANs, na Web ou na nuvem.
Implementado até agora
- Estrutura BeaconSender que pode ser configurada para enviar beacons:
- com uma string de conteúdo de beacon específica
- em uma porta específica
- com métodos para:
- enviar para sempre em um loop em um determinado período de tempo
- envie apenas um farol
- Estrutura BeaconListener simples que pode ser configurada para receber beacons:
- correspondendo ao conteúdo de uma mensagem específica
- com um método que bloqueia o remetente e espera até que uma mensagem seja recebida
- com um valor de tempo limite opcional para aguardar ou Nenhum para aguardar indefinidamente
- Binários simples de 'anunciar' e 'ouvir' que usam a biblioteca como exemplos
- Alguns testes de documentos para manter os documentos da API corretos
- Ação do Github para construir, verificar o clippy e testar tudo
'anunciar' binário
Execute este binário do repositório usando cargo run --bin announce
ou apenas announce
se você instalou a caixa com carga.
É necessário um parâmetro de linha de comando opcional para especificar a String para a mensagem do beacon anunciar: cargo run --bin announce -- Hello
'ouvir' binário
Execute este binário do repositório usando cargo run --bin listen
ou apenas listen
se você instalou o crate com cargo.
É necessário um parâmetro de linha de comando opcional para especificar a String para a mensagem do beacon aguardar antes de sair: cargo run --bin listen -- Hello
Trabalho futuro
Tomei a maioria das minhas anotações sobre trabalhos futuros e as converti em problemas do GitHub.
Algumas são apenas perguntas sobre coisas que não entendo e adoraria que especialistas em UDP e ferrugem me explicassem.
Por favor, comente ou inicie qualquer que você tenha interesse em implementar.
Os PRs são obviamente bem-vindos, se acompanhados de alguns comentários de documentos, testes de documentos ou testes.
Desenvolvedores
- Clone/fork o repositório e baixe:
-
cd
no diretório - Adicione alterações, adicione comentários de documentos e/ou testes e testes de documentos.
-
cargo build
-
cargo test
-
cargo clippy -- -D warnings
- Crie um PR
- As ações do Github executarão as mesmas etapas acima
- vou revisar e mesclar