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 网络编程
122 每月下载次数
在 2 crates 中使用
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