14 个重大版本发布
新版本 0.15.0 | 2024 年 8 月 20 日 |
---|---|
0.13.0 | 2024 年 7 月 22 日 |
0.5.0 | 2024 年 3 月 29 日 |
0.4.0 | 2023 年 12 月 20 日 |
#1004 in 网络编程
每月 327 次下载
41KB
391 行
笨管道
这是一个使用 iroh-net 创建一个笨管道来通过 QUIC 连接连接两台机器的示例。
Iroh-net 将在可能的情况下处理打洞和 NAT 穿透,如果打洞失败,则回退到中继。
它也可以作为独立工具进行快速复制作业。
这受到 Unix 工具 netcat 的启发。虽然 netcat 与 IP 地址一起工作,但笨管道使用 256 位节点 ID,因此在一定程度上具有位置透明性。此外,连接使用 TLS 加密。
安装
cargo install dumbpipe
示例
使用 dumbpipe 通过 ffmpeg / ffplay 流式传输视频
这使用标准输入和输出。
发送方
在 Mac OS 上
ffmpeg -f avfoundation -r 30 -i "0" -pix_fmt yuv420p -f mpegts - | dumbpipe listen
在 Linux 上
ffmpeg -f v4l2 -i /dev/video0 -r 30 -preset ultrafast -vcodec libx264 -tune zerolatency -f mpegts - | dumbpipe listen
输出票据
接收方
dumbpipe connect nodeealvvv4nwa522qhznqrblv6jxcrgnvpapvakxw5i6mwltmm6ps2r4aicamaakdu5wtjasadei2qdfuqjadakqk3t2ieq | ffplay -f mpegts -fflags nobuffer -framedrop -
- 根据您的本地平台和视频捕获设备调整 ffmpeg 选项。
- 使用发送方提供的票据
转发开发网络服务器
您有一个运行在端口 3000 的开发网络服务器,并希望与另一个办公室或世界另一端的同事共享。
网络服务器
npm run dev
> - Local: http://localhost:3000
笨管道监听器
监听 一个神奇端点,并将所有传入请求转发到在 localhost 的端口 3000 上监听的开发网络服务器。可以通过单个笨管道流动任意数量的连接,但它们将是独立的本地 TCP 连接。
dumbpipe listen-tcp --host localhost:3000
此命令将输出一个票据,可以用来连接。
笨管道连接器
监听 本地机器上的 TCP 接口和端口。在这种情况下,在端口 3001。将所有传入连接转发到票据中给出的神奇端点。
dumbpipe connect-tcp --addr 0.0.0.0:3001 <ticket>
测试它
您现在可以浏览端口 3001 上的网站。
高级功能
自定义 ALPN
笨管道有一个专家功能可以指定自定义的 ALPN 字符串。您可以使用它与现有的 iroh-net 服务交互。
例如,下面是如何与iroh-bytes协议交互:
echo request1.bin | dumbpipe connect <ticket> --custom-alpn utf8:/iroh-bytes/2 > response1.bin
如果request1.bin包含对/iroh-bytes/2
协议的有效请求,则response1.bin现在将包含响应。
依赖项
~44–78MB
~1.5M SLoC