#nt #revision #server #derive #containing #table #nt-rs

nt-packet-derive

包含用于nt-rs的过程宏推导的crate

3个版本

使用旧的Rust 2015

0.1.4 2018年8月28日
0.1.3 2018年8月27日
0.1.2 2018年8月19日
0.1.1 2018年8月12日
0.1.0 2018年8月12日

#13 in #nt

MIT许可证

15KB
307

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特性之后。

连接到Websockets服务器

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

创建Websockets服务器

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

JavaScript中的网络表格(WIP)

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

许可证

本项目采用MIT许可证。

鸣谢

感谢Jess Creighton (https://github.com/jcreigh) 给出了这个想法

依赖项

~2.5MB
~55K SLoC