chore: add project archival notice to README & add docs from website (#165) chore: add project archival notice to README move docs from website to project folder for archived. docs: add monolake docs from website Change-Id: Ib7a52531a19ea48531c44c881979b563f487ddb5 chore: update readme_zh Change-Id: Ib9255071ff257d007f43903f01dfdd886b74f483 chore: add images Change-Id: I781b543c0b95cf49f710e0e79ef3d0ca078b7b87
chore: add project archival notice to README & add docs from website (#165)
move docs from website to project folder for archived.
Change-Id: Ib7a52531a19ea48531c44c881979b563f487ddb5
Change-Id: Ib9255071ff257d007f43903f01dfdd886b74f483
Change-Id: I781b543c0b95cf49f710e0e79ef3d0ca078b7b87
简体中文 | English
Monolake 是一个用 Rust 开发高性能网络服务(如代理和网关)的框架。其基于原生支持 io_uring 的异步运行时Monoio 从零设计的。
虽然目前最流行的 Rust 异步运行时是基于 epoll/kqueue 的 Tokio,但 Monolake 选择了不同的技术路线。由字节跳动开发的 Monoio 运行时采用 线程-核心(thread-per-core) 模型,通过 io_uring 的高效异步 I/O 操作充分释放硬件性能。
基于这一创新运行时,Monolake 在生态中全面支持 io_uring 特性,包括专为 io_uring 设计的 IO 抽象和与 Tower 不同的服务架构。同时,Monolake 提供了针对 Thrift 和 HTTP 的 io_uring 优化实现。
Monolake 框架已用于构建多种高性能代理和网关,并积极部署于 ByteDance 下的生产环境,其典型场景包括:
Monolake 代理 是基于 Monolake 框架组件构建的高性能 HTTP/Thrift 代理参考实现,展示了框架的核心能力。通过集成 monoio-transports 的高效网络能力、service-async 的模块化服务组合机制,以及 certain-map 的类型安全上下文管理,该实现充分体现了 Monolake 的工程实践价值。此外,通过该代理可进行性能基准测试,与 Nginx、Envoy 等主流方案进行对比。
基于 io_uring 的异步运行时(Monoio):底层依赖 Monoio 运行时,通过 Linux 内核的 io_uring 特性提供高效的异步 I/O 支持。
线程-核心模型:Monoio 运行时采用线程-核心架构,简化并发编程模型,避免跨线程数据共享的复杂性。
增强型服务抽象与生命周期管理:提供改进的 Service 特征,优化借用语义,支持服务版本管理、滚动升级和状态保留等高级生命周期功能。
Service
模块化连接器架构:通过 monoio-transports 提供可组合的连接器系统,支持通过堆叠 TCP、TLS、HTTP 等组件构建复杂网络方案。
类型化上下文管理(certain_map):使用 certain-map 实现编译期类型安全的上下文管理,简化服务间间接数据依赖。
协议优化实现:提供针对 io_uring 优化的 HTTP/Thrift 协议实现,充分发挥底层运行时性能。
模块化扩展设计:框架设计高度模块化,支持开发者按需定制组件或适配现有实现。
贡献说明详见:贡献指南。
Monolake 采用 MIT 或 Apache 许可证。
CloudWeGo 项目已加入 CNCF 云原生全景图。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802032778号
CloudWeGo-Monolake
简体中文 | English
Monolake 框架
Monolake 是一个用 Rust 开发高性能网络服务(如代理和网关)的框架。其基于原生支持 io_uring 的异步运行时Monoio 从零设计的。
虽然目前最流行的 Rust 异步运行时是基于 epoll/kqueue 的 Tokio,但 Monolake 选择了不同的技术路线。由字节跳动开发的 Monoio 运行时采用 线程-核心(thread-per-core) 模型,通过 io_uring 的高效异步 I/O 操作充分释放硬件性能。
基于这一创新运行时,Monolake 在生态中全面支持 io_uring 特性,包括专为 io_uring 设计的 IO 抽象和与 Tower 不同的服务架构。同时,Monolake 提供了针对 Thrift 和 HTTP 的 io_uring 优化实现。
Monolake 框架已用于构建多种高性能代理和网关,并积极部署于 ByteDance 下的生产环境,其典型场景包括:
Monolake 代理
Monolake 代理 是基于 Monolake 框架组件构建的高性能 HTTP/Thrift 代理参考实现,展示了框架的核心能力。通过集成 monoio-transports 的高效网络能力、service-async 的模块化服务组合机制,以及 certain-map 的类型安全上下文管理,该实现充分体现了 Monolake 的工程实践价值。此外,通过该代理可进行性能基准测试,与 Nginx、Envoy 等主流方案进行对比。
核心特性
基于 io_uring 的异步运行时(Monoio):底层依赖 Monoio 运行时,通过 Linux 内核的 io_uring 特性提供高效的异步 I/O 支持。
线程-核心模型:Monoio 运行时采用线程-核心架构,简化并发编程模型,避免跨线程数据共享的复杂性。
增强型服务抽象与生命周期管理:提供改进的
Service特征,优化借用语义,支持服务版本管理、滚动升级和状态保留等高级生命周期功能。模块化连接器架构:通过 monoio-transports 提供可组合的连接器系统,支持通过堆叠 TCP、TLS、HTTP 等组件构建复杂网络方案。
类型化上下文管理(certain_map):使用 certain-map 实现编译期类型安全的上下文管理,简化服务间间接数据依赖。
协议优化实现:提供针对 io_uring 优化的 HTTP/Thrift 协议实现,充分发挥底层运行时性能。
模块化扩展设计:框架设计高度模块化,支持开发者按需定制组件或适配现有实现。
性能表现
测试环境
文档
相关组件
贡献指南
贡献说明详见:贡献指南。
许可证
Monolake 采用 MIT 或 Apache 许可证。
社区
云原生生态
CloudWeGo 项目已加入 CNCF 云原生全景图。