2个版本
0.2.1 | 2023年11月6日 |
---|---|
0.2.0 | 2023年11月1日 |
#861 在 HTTP服务器
用于 2 crates
12KB
226 行
Cali
一个有偏见的GRPC/JSON后端Web框架,用于Rust。
目标
- 使用简单的CLI创建新项目,构建组件。
- 在应用程序主函数上简单地装饰属性来设置配置、数据库连接、外部服务连接GRPC
结构方法
一个典型的Cali项目分为应用程序接口和应用程序逻辑。
应用程序接口涉及应用程序如何连接到外部世界。
应用程序逻辑根据领域驱动设计的精神分为业务逻辑上下文。
Cali在几个方面持有有偏见的立场,我将简要说明为什么做出了某些决定。
- Cali将每个业务逻辑单元分割成它自己的crate。由于基于Rust,我们始终与语言的问题紧密相连。我们得到了一个出色的编译器,但速度较慢。优化Rust构建时间并非不可能,但并非易事。Cali旨在使Rust更容易为来自具有热重载和快速开发时间环境的用户使用。没有显著的努力,我们无法完全实现这一点。一个简单而有效的解决方案是将我们的项目结构成更小的单元。这些单元协同工作,通过这种方式,我希望Cali可以更容易地将单体 ——> 到宏服务 ——> 微服务(以及反过来)的转换变得容易。您的应用程序被迫模块化和可组合。希望这有助于重构工作(如果我们面对它,这是不可避免的),只有时间才能证明一切。
- Cali试图让Rust开发变得不那么冗长。这是通过Rust强大的宏系统实现的。因此,大多数细节都被从用户那里抽象出来。Rust纯主义者可能会错过这些细节和随之而来的控制。我已经尝试并将会尝试为那些希望有更多控制的人提供一种方法。优化规模是每个团队的个人努力,该框架将尽量适应这一点,但当在某些优化可能需要增加框架使用复杂性的情况下,Cali将选择易用性。这并不是说Cali不追求性能,但如果你是那百万分之一的公司需要那种性能,也许你应该考虑自己构建设置。
- Cali旨在反驳编写后端代码是高级语言专属领域的观点。Rust不是最好的语言,但它的理念在标准范式上有所改进,开发者可以从使用该语言中学到很多东西。它改善了开发者的思维方式,并将从长远来看对你有益。来辩论吧。
依赖项
~42–56MB
~1M SLoC