#反向代理 #WebSocket #路由器 #HTTP #cranker

scr-axum-cranker-router

mu-cranker-router的Rust移植版

1个不稳定版本

0.0.2 2024年6月2日
0.0.1 2024年6月1日

#1889 in 网络编程

Download history 312/week @ 2024-05-27 71/week @ 2024-06-03 9/week @ 2024-06-10

68 每月下载量

Apache-2.0

245KB
5K SLoC

scr-axum-cranker-router

A Rust移植自mu-cranker-router

"scr"意味着从头开始,之前有一个"cranker-ruster",因为Rust对我来说太难了。Rust仍然很难,但现在不那么痛苦了,所以这次又从头开始写了。

待办事项

  • VecDeque替换为可超时的mpsc通道以轮询路由器套接字
  • [ ] 使用thiserror crate定义错误 当前方法应该是足够的。
  • [ ] 将整个程序封装成tower服务 看起来tower http没有为WebSocket设计,所以没有方法。
  • 支持V3
  • 处理无效的路由器套接字
  • 在挂钩点调用监听器ProxyListener中调用on_failure_to_acquire_proxy_socket
  • 添加健康映射以实现可观察性。 为此,我们需要将route_to_socket_chan中的当前Arc<dyn RouteSocket>更改为Weak<_>,并将唯一的Arc存储在AppState的全局映射中。参考mu cranker router中的WebSocketFarm。WebSocketFarm已完成。/health/connectors默认可用。
  • 注销处理程序
  • [ ] 将所有不必要的async mpmc无界通道替换为tokio的mpsc无界通道。 已放弃。
  • 暗黑模式管理器
  • 整理访问修饰符,尽可能少地暴露实现细节。
  • 考虑使用tracing crate进行日志记录
  • 删除具有解析带端口号的主机时存在错误的rfc7239 crate
  • 文档。从所有公共代码迁移到java doc。
  • 优雅关闭。检查simple_v1

依赖项

~12–22MB
~318K SLoC