8个版本

使用旧的Rust 2015

0.2.0 2018年3月8日
0.1.6 2018年2月16日
0.1.4 2018年1月24日

#1327 in HTTP服务器

Download history 8/week @ 2024-02-16 17/week @ 2024-02-23 1/week @ 2024-03-01 85/week @ 2024-03-29

每月85次下载

MIT许可证

50KB
1K SLoC

芬达

一个针对Rust Web开发的具有偏见的框架。

Build Status

芬达是一个Web框架,旨在让开发者在项目和团队之间保持高效和一致性。其目标是

  • 具有偏见
  • 快速
  • 直观

基于以下工作: https://github.com/tokio-rs/tokio-minihttp

具有偏见

芬达和芬达-cli致力于提供一个良好的领域驱动设计的方式。它也设计用来让你走上正确的道路,但不会在库的背后模糊某些难点。

快速

使用以下命令,我们得到大约96%的速度,在发布模式下纯运行tokio-minihttp的速度。

wrk -t12 -c400 -d30s http://127.0.0.1:4321/plaintext

芬达结果

Running 30s test @ http://127.0.0.1:4321/plaintext
  12 threads and 400 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     6.45ms    1.09ms  18.11ms   75.96%
    Req/Sec     5.03k   502.49     7.75k    82.97%
  1802773 requests in 30.05s, 244.13MB read
  Socket errors: connect 0, read 238, write 0, timeout 0
Requests/sec:  60000.61
Transfer/sec:      8.13MB

tokio-minihttp

Running 30s test @ http://127.0.0.1:4321/plaintext
  12 threads and 400 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     6.30ms    2.14ms  52.22ms   88.68%
    Req/Sec     5.19k     1.03k   10.91k    77.92%
  1861702 requests in 30.05s, 229.03MB read
  Socket errors: connect 0, read 243, write 0, timeout 0
Requests/sec:  61949.84
Transfer/sec:      7.62MB

直观

基于Koa、Express等框架,芬达旨在让开发体验愉快。

入门

无数据库的快速设置

入门的最简单方法是直接克隆入门套件

> git clone git@github.com:trezm/fanta-starter-kit.git
> cd fanta-starter-kit
> cargo run

示例提供了一个简单的纯文本路由,一个带有JSON序列化的路由,以及使用子应用组织子路由的首选方法。

带有PostgreSQL的快速设置

使用PostgreSQL入门的最简单方法是安装芬达-cli,

> cargo install fanta-cli

然后运行

> fanta-cli init MyAwesomeProject
> fanta-cli component Users
> fanta-cli migrate

这将生成您开始所需的一切!请注意,这需要一个运行的PostgreSQL连接,并假设以下连接字符串是有效的

postgres://postgres@localhost/<Your Project Name>

所有这些都是可配置的,并且不会对开发者隐藏。这就像看到魔术表演并学习如何做到这一点!请参阅芬达-cli的文档

变更日志

0.2.0

  • 重大更改
    • 迁移到使用Futures对所有中间件回调进行操作
  • 亮点
    • 移除了基于树的查找路由以移除潜在的分支
    • 移除了涉及查找的许多正则表达式

依赖关系

~12MB
~223K SLoC