【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。

相关推荐
蚂蚁背大象9 小时前
Rust 所有权系统是为了解决什么问题
后端·rust
布列瑟农的星空10 小时前
前端都能看懂的rust入门教程(五)—— 所有权
rust
Java水解1 天前
Rust嵌入式开发实战——从ARM裸机编程到RTOS应用
后端·rust
Pomelo_刘金1 天前
Rust:所有权系统
rust
Ranger09292 天前
鸿蒙开发新范式:Gpui
rust·harmonyos
DongLi014 天前
rustlings 学习笔记 -- exercises/05_vecs
rust
番茄灭世神5 天前
Rust学习笔记第2篇
rust·编程语言
shimly1234565 天前
(done) 速通 rustlings(20) 错误处理1 --- 不涉及Traits
rust
shimly1234565 天前
(done) 速通 rustlings(19) Option
rust
@atweiwei5 天前
rust所有权机制详解
开发语言·数据结构·后端·rust·内存·所有权