#nt #protocols #codec #networking #revision #server #type

nt-network

为 nt-rs 提供网络类型和编解码器

8 个稳定版本

3.0.0 2020 年 4 月 10 日
2.1.0 2020 年 2 月 10 日
2.0.0 2020 年 1 月 15 日
1.0.3 2019 年 6 月 25 日

#5 in #nt


用于 nt

MIT 许可证

28KB
870

nt-rs

nt-rs 是使用 Tokio 在 Rust 中实现 NetworkTables 版本 3 协议的库。目前它是一个纯客户端库。未来可能会提供创建 NT 服务器的 API。

入门指南

该库可在 https://crates.io 找到,并可以通过以下命令添加到项目中:nt = "0.1.0" 示例用法可在 examples/ 目录中找到

什么是 NetworkTables?

NetworkTables 或 NT 是一种基于 TCP 的键值数据存储协议。它主要用于 FIRST 机器人竞赛中的机器人代码,用于在机器人网络中共享数据。

示例

连接到服务器

let mut nt = NetworkTables::connect("10.TE.AM.2:1735", "nt-rs-client")?;

创建服务器

let mut nt = NetworkTables::bind("0.0.0.0:1735", "nt-rs-server");

WebSockets

nt 1.0.0 添加了对通过 WebSockets 进行客户端和服务器通信的支持。这位于 websockets 功能之后。

连接到 WebSocket 服务器

let mut nt = NetworkTables::connect_ws("ws://10.TE.AM.2:1735", "nt-ws-client")?;

创建 WebSocket 服务器

let mut nt = NetworkTables::bind_ws("0.0.0.0:1735", "nt-ws-server");

JavaScript 中的 Network Tables (WIP)

由于 nt 依赖于 Tokio 的运行时,无法直接编译为 wasm,因此在 ./nt-ws 提供了一个补充的 crate,该 crate 可以编译为 wasm。此 crate 仅支持 NT 客户端,并使用 wasm_bindgen 导出一个 JavaScript 兼容的 API。

许可证

本项目采用 MIT 许可证。

致谢

感谢 Jess Creighton (https://github.com/jcreigh) 给予我灵感

依赖关系

~5MB
~79K SLoC