#opinionated #microservices #included #batteries #cali #connection #grpc

cali_core

Cali是一个包含电池、有偏见的基于Rust的微服务框架

2个版本

0.2.1 2023年11月6日
0.2.0 2023年11月1日

#861HTTP服务器


用于 2 crates

MIT 许可证

12KB
226

Cali

一个有偏见的GRPC/JSON后端Web框架,用于Rust。

目标

  • 使用简单的CLI创建新项目,构建组件。
  • 在应用程序主函数上简单地装饰属性来设置配置、数据库连接、外部服务连接GRPC

结构方法

一个典型的Cali项目分为应用程序接口和应用程序逻辑。

应用程序接口涉及应用程序如何连接到外部世界。

应用程序逻辑根据领域驱动设计的精神分为业务逻辑上下文。

Cali在几个方面持有有偏见的立场,我将简要说明为什么做出了某些决定。

  1. Cali将每个业务逻辑单元分割成它自己的crate。由于基于Rust,我们始终与语言的问题紧密相连。我们得到了一个出色的编译器,但速度较慢。优化Rust构建时间并非不可能,但并非易事。Cali旨在使Rust更容易为来自具有热重载和快速开发时间环境的用户使用。没有显著的努力,我们无法完全实现这一点。一个简单而有效的解决方案是将我们的项目结构成更小的单元。这些单元协同工作,通过这种方式,我希望Cali可以更容易地将单体 ——> 到宏服务 ——> 微服务(以及反过来)的转换变得容易。您的应用程序被迫模块化和可组合。希望这有助于重构工作(如果我们面对它,这是不可避免的),只有时间才能证明一切。
  2. Cali试图让Rust开发变得不那么冗长。这是通过Rust强大的宏系统实现的。因此,大多数细节都被从用户那里抽象出来。Rust纯主义者可能会错过这些细节和随之而来的控制。我已经尝试并将会尝试为那些希望有更多控制的人提供一种方法。优化规模是每个团队的个人努力,该框架将尽量适应这一点,但当在某些优化可能需要增加框架使用复杂性的情况下,Cali将选择易用性。这并不是说Cali不追求性能,但如果你是那百万分之一的公司需要那种性能,也许你应该考虑自己构建设置。
  3. Cali旨在反驳编写后端代码是高级语言专属领域的观点。Rust不是最好的语言,但它的理念在标准范式上有所改进,开发者可以从使用该语言中学到很多东西。它改善了开发者的思维方式,并将从长远来看对你有益。来辩论吧。

依赖项

~42–56MB
~1M SLoC