由于Rust生态系统还处于早期阶段,因此框架有很多选择。每个人都有自己的优点和缺点,没有明显的赢家。
Rocket是一个十几岁的框架 - 比其他许多框架更发达,但仍然不太成熟。它的特殊功能是通过宏来注释请求处理函数,这个宏包括路由、参数和所需的数据,例如有效的反序列化形式,以及定义一种依赖注入。此外,文档非常好,开发活跃,并且与Actix一起,这是最常用的框架之一,因此可以从发展的社区知识中受益。火箭需要Rust的nightly以上版本。
Actix-web是一个基于Actix构建的框架,Actix是Rust的一个actor系统。它虽然成立时间没有Rocket那么长,但已经获得了另一个社区的最爱。独特的actor方法意味着单独的组件(如数据库访问和后台任务)都被实现为异步actor,它们通过消息传递相互通信。Actix-web可能因出现在TechEmpower Web框架基准测试的排名顶端而闻名。Actix-web正在积极开发中,并且具有相当全面的文档。
Gotham是一个异步的Web框架,它与Rocket一样时间长,但在2018年由于原始开发人员离开而不太活跃。我喜欢它简单明了的方法,但对于某些常见任务来说它可能被认为有点冗长,并且最近在功能方面落后于更受欢迎的框架。
Tower-web是另一个平易近人的框架,旨在提供所有标准功能。它基于Tower:一个网络客户端/服务器组件库,这意味着它最终应该获得“batteries included”状态。它也是由Rust最流行的异步运行时库Tokio的核心贡献者之一开发的,这似乎是一个优点。像火箭一样,Tower-web使用宏来减少样板,但不需要Rust nightly 。由于它是新的,它仍然缺少功能和文档的方式,