1 个不稳定版本
0.1.0 | 2024年2月9日 |
---|
#12 在 #trust
175KB
3.5K SLoC
LibCFD
将 cloudflared (Cloudflare隧道客户端) 转换为Rust语言。
目的
LibCFD旨在成为cloudflared及其命令行包装器的轻量级且可编程的替代品。LibCFD的主要优点是不必启动一个新的进程(该进程使用垃圾回收的运行时)来连接到Cloudflare。因此,我们可以通过移除IPC和GC开销来节省资源。
特性
目前支持的特性包括
- 命名隧道(零信任网络访问)
- 快速隧道(TryCloudflare)
- QUIC隧道连接
- HTTP隧道连接(非优先级)
- 适当的客户端信息报告(优先级)
- 隧道重连
- HTTP连接(部分工作,但可能是一个陷阱)
- HTTP连接包装器
- WebSocket连接(部分工作,但可能是一个更大的陷阱)
- WebSocket连接包装器
- TCP连接(由命名隧道控制)
- 远程管理(由命名隧道控制)
待办事项
除了上面列出的,还有以下两个我期待完成的待办事项
- 修复异步(一些futures由于capnp而!Send,可能需要修改capnp)
- 解耦Tokio
性能
正在进行中。看起来至少可以达到1gbps。
示例
Http Hello World
创建一个HTTP服务器,发送简单的"hello world"响应。
cargo run --example http_hello_world
Http Download
创建一个HTTP服务器,尽可能快地发送数据。
cargo run --example http_download
Http Download
创建一个HTTP服务器,尽可能快地接收数据。
cargo run --example http_upload
Websocket Echo
创建一个WebSocket服务器,回显所有接收到的WebSocket消息。
cargo run --example websocket_echo
依赖项
~18–34MB
~619K SLoC