19 个版本

0.7.0 2024 年 3 月 4 日
0.6.2 2022 年 12 月 23 日
0.6.0 2022 年 11 月 29 日
0.3.1 2022 年 4 月 26 日
0.1.6 2021 年 7 月 29 日

#589 in 网络编程

Download history 75/week @ 2024-04-01 31/week @ 2024-04-08 80/week @ 2024-04-15 42/week @ 2024-04-22 26/week @ 2024-04-29 69/week @ 2024-05-06 38/week @ 2024-05-13 76/week @ 2024-05-20 43/week @ 2024-05-27 47/week @ 2024-06-03 33/week @ 2024-06-10 43/week @ 2024-06-17 30/week @ 2024-06-24 23/week @ 2024-07-01 36/week @ 2024-07-08 29/week @ 2024-07-15

122 每月下载次数
2 crates 中使用

MIT 许可证

18KB
164 代码行

简探

简探是一个简单的 Rust crate,它使用 UDP 广播数据报或“信标”来简化局域网(LAN)内服务的发现。

服务的“通告者”可以是另一台机器上的进程,或者是同一台机器上的另一个线程或进程。

目标

  • 在整个局域网中检测命名的服务和它们的 IP 地址
  • 易于理解和使用
  • 体积小,对库的依赖性小,内存和 CPU 足迹小
  • 简单的信标格式,易于使用,且不会将特定的文件格式支持引入库中

非目标

  • 在局域网、广域网、互联网或云中检测服务。

已实现

  • 可以配置为发送具有特定信标内容的信标的 BeaconSender 结构体
    • 字符串
    • 在特定端口上
    • 具有以下方法
      • 在给定的时间间隔内循环发送
      • 只发送一个信标
  • 简单的 BeaconListener 结构体,可以配置为接收信标
    • 匹配特定消息内容
    • 具有阻塞发送者并等待消息接收的方法
      • 具有可选的超时值以等待或 None 无限期等待
  • 简单的 'announce' 和 'listen' 二进制文件,作为库的示例使用
  • 一些文档测试以保持 API 文档的正确性
  • GitHub Action 构建然后 clippy 检查然后测试所有内容

'announce' 二进制文件

从仓库运行此二进制文件,使用 cargo run --bin announce 或如果您已使用 cargo 安装了 crate,则只需 announce

它接受一个可选的命令行参数,用于指定要通告的信标消息的字符串: cargo run --bin announce -- Hello

'listen' 二进制文件

使用 cargo run --bin listen 或者在已用 cargo 安装了软件包的情况下直接使用 listen 运行这个二进制文件。

它接受一个可选的命令行参数,用于指定在退出前等待的 beacon 消息的字符串:cargo run --bin listen -- Hello

未来工作

我将大部分关于未来工作的笔记转换为 GitHub issues

其中一些只是关于我不理解的事情的问题,我很乐意让 UDP 和 rust 的专家为我解释。

请评论或开始任何你感兴趣的实现。

如果伴随一些文档注释、文档测试或测试,则显然欢迎 PR。

开发者

  • 克隆/分叉仓库并下载
  • cd 进入目录
  • 添加更改,添加文档注释和/或文档测试和测试。
  • cargo构建
  • cargo测试
  • cargoclippy ---D warnings
  • 创建一个 PR
  • Github actions 将运行上述相同的步骤
  • 我将进行审查并合并

依赖关系

~255KB