【aiway】一个Rust实现的API网关

最近用Rust实现了一个API网关,开源地址:https://github.com/xgpxg/aiway

欢迎感兴趣的同学一起改进它。

功能

目前实现了以下功能:

  • 动态路由
  • 服务管理(支持随机和轮询负载)
  • 插件系统
  • 安全验证(防火墙)
  • 统一API Key管理
  • 日志存储和监控
  • 可视化
  • 支持单机/集群部署

协议支持

目前仅支持HTTP和SSE,后续将会扩展到更多协议。

原理

网关核心使用 Rocket + Reqwest 实现,Rocket接收请求,Reqwest 转发请求。

基于Rocket的Fairing,扩展实现了路由匹配、防火墙、负载、日志等组件。

性能

网关和测试服务都部署在 i7-12700K 的Ubuntu系统上,单机QPS为7w左右,内存占用约250M。

在不请求后端服务(仅网关自身)时,QPS约30W。

相关推荐
星栈独行10 小时前
用 Rust + Makepad 做一个 JSON 查看器:从零到能用的全过程
开发语言·程序人生·ui·rust·json
阿正的梦工坊10 小时前
【Rust】01-认识 Rust:语言定位、工具链与第一个程序
开发语言·后端·rust
特立独行的猫a20 小时前
Tauri 应用移植到 OpenHarmony/鸿蒙PC完整指南
华为·rust·harmonyos·tauri·移植·鸿蒙pc
搬砖魁首1 天前
基础能力系列 - 多线程2 - 条件变量
c++·rust·条件变量·原子类型·线程同步互斥
Yuyubow1 天前
gpui step by step 5. FocusHandle 焦点处理与键盘点击事件
rust
techdashen1 天前
在 Fly.io 上使用 Rust 构建远程开发环境:从 Tokio 到 eBPF
开发语言·后端·rust
星栈1 天前
用 Rust + Makepad 做一个 JSON 查看器:从零到能用的全过程
前端·rust
日取其半万世不竭1 天前
Rust《腐蚀》 服务器低成本怎么开?配置、端口和存档避坑
服务器·开发语言·rust
techdashen1 天前
Cargo 1.93 开发周期动态全解析
rust