libcfd
所属分类:C/C++工具库
开发工具:Rust
文件大小:0KB
下载次数:0
上传日期:2024-02-09 16:56:50
上 传 者:
sh-1993
说明: libcfd(伦敦金融中心)
(libcfd)
文件列表:
examples/
src/
Cargo.lock
Cargo.toml
LICENSE
build.rs
# LibCFD
A port of [cloudflared](https://github.com/cloudflare/cloudflared) (Cloudflare Tunnel Client) to Rust.
# Purpose
LibCFD intends to be lightweight and programmable replacement for cloudflared and its command line wrappers.
The main advantage of LibCFD is that we don't have to spawn a whole new process (that uses a garbage collected runtime) to connect to Cloudflare.
Thanks to this, we can save on resources by removing the IPC and GC overheads.
# Features
The currently supported features are
- [ ] Named tunnel (Zero Trust Network Access)
- [x] Quick tunnel (TryCloudflare)
- [x] QUIC tunnel connection
- [ ] HTTP tunnel connection (non-priority)
- [ ] Proper client information reporting (priority)
- [ ] Tunnel reconnection
- [x] HTTP connection (kind of works, but is a footgun)
- [ ] HTTP connection wrapper
- [x] Websocket connection (kind of works, but is an even bigger footgun)
- [ ] Websocket connection wrapper
- [ ] TCP connection (gated by named tunnel)
- [ ] Remote management (gated by named tunnel)
# To Do
Aside form those already listed above, these two are some to dos I am lookning forward to
- Fix async (some futures are !Send due to capnp, there may be a need to modify capnp)
- Decouple Tokio
- Clean up dependencies
# Performance
Work in progress. Seems to be able to hit 1gbps at least.
# Examples
## Http Hello World
Creates a HTTP server that sends simple "hello world" response.
```sh
cargo run --example http_hello_world
```
## Http Download
Creates a HTTP server that sends data as fast as possible.
```sh
cargo run --example http_download
```
## Http Download
Creates a HTTP server that receives data as fast as possible.
```sh
cargo run --example http_upload
```
## Websocket Echo
Creates a WebSocket server that echos all received Websocket messages.
```sh
cargo run --example websocket_echo
```
近期下载者:
相关文件:
收藏者: