Tide框架是官方为了引领社区异步web框架的发展所立的标杆项目
起这个名字是想取「水涨船高」之意,惠及社区。我想,也象征了Rust即将登陆的异步在Web领域带来一股洪流吧。
Tide 初始版本已经开始动工,大约1000行代码实现了一个基本的框架雏形。目前还存在很多问题,不过「骨架」已经到位了,剩下的就是社区的努力一起为其填充「血肉」。
在这个初始版本里,加入了一个简单的中间件设计和计算值。
一、中间件
中间件的设计直接来自于actix-web :
pubtraitMiddleware: Send +Sync{/// Asynchronously transform the incoming request, or abort further handling by immediately/// returning a response.// 对进入的请求做点啥fn request(&self,data: &mutData,req: Request,params: &RouteMatch,)-> FutureObj>;/// Asynchronously transform the outgoing response.// 对响应再做点啥fn response(&self,data: &mutData,head: &Head,resp: Response,)-> FutureObj;}
当然,具体的trait方法和actix-web略有不同(tide里用request替代了actix-web的start),但基本的思想是一致的。 详细可参考actix-web中间件的文档.
在未来FutureObj将会换成Box,这样可以避免复杂的类型跟踪,虽然可能有性能开销,但预计成本会极低,这个已经在actix-web