技术探索与实践:项目的主要目的是探索和展示Rust语言在构建高性能后端服务领域的潜力和最佳实践。IM系统作为一个高并发、高可用性需求的典型应用场景,非常适合展示Rust的性能优势。
提供参考实现:为开发者提供一个高效、稳定、可扩展的即时通讯解决方案的参考实现,让有IM需求的开发者可以基于此快速构建自己的服务。
性能优化示范:通过MongoDB的混合分片策略等技术,展示在高负载场景下优化消息存储和处理的方法,可以作为类似系统的设计参考。
微服务架构实践:演示如何使用Rust构建微服务架构的复杂系统,包括服务拆分、通信、部署等方面的最佳实践。
提供可定制化的IM基础设施:让开发者能够基于这个系统进行定制和扩展,满足不同场景下的即时通讯需求,而无需从零开始构建。
采用全 Rust 技术栈,实现高性能、低延迟的消息传递系统
前端:基于Rust web Assembly:使用yew框架,配合web_sys、js_sys等Rust包实现对js数据对Html DOM的动态操作
后端:分布式架构,采用axum、tonic等框架,并使用kafka进行解耦,任一组件可弹性部署。开发模式下提供了docker-compose,所有第三方组件可一键部署
项目已开源:https://github.com/Xu-Mj/sandcat-backend
前端基于 Rust WebAssembly 和 yew 框架开发,实现跨平台 Web 客户端,web端存储基于indexeddb
客户端使用 Tauri 2.0 实现原生桌面体验,支持多平台部署,存储基于sqlite/indexeddb
后端采用分布式微服务架构,使用 axum、tonic 等框架
设计 Kafka 消息队列实现服务解耦,支持弹性部署和水平扩展
实现基于 Redis Lua 脚本的复杂查询优化
解决 IM 系统核心难题:消息实时性、可靠性和有序性保证
目前正在提供基于flutter的跨平台解决方案