Planet of the Crabs
🦀 fearless rust


warp v0.1.10

Posted on by Sean McArthur : seanmonstar

warp is a breakthrough server web framework for the Rust language.

Today sees the 11th release of warp, v0.1.10! I wanted to show off the new features, and highlight some of the amazing work that has appeared since the initial announcement.

v0.1.10

Previously

In case you missed it, some highlights of work that has landed before v0.1.10:

Next Focus: Service

When I announced warp initially, I had mentioned the Service trait, and the tower-web framework. There are still plans to see warp and tower-web merge, and current efforts have been around solidifying the Service trait itself.

As a recap, the Service trait is essentially some extra pieces on top of an async fn(Request) -> Response. Our aim is that Service and the http crate are the most basic interface that the ecosystem can gather behind. Server implementations and frameworks could be compatible with each other, as long they both just knew about Service and http.1

Being the common interface, it then becomes easier for frameworks and users to add in “tower middleware”, since a wrapped Service is still a Service. There are already several tower middlewares that have been developed in support of Linkerd2.

We recently published a new release of tower-service. A prototype now exists for warp to be able to convert a Filter directly into an HTTP Service. From there, we could simply run it directly via hyper::Server. Other HTTP server implementations that supported Service could theoretically also just run it, and the user would still just deal with warp types.

The future of webdev in Rust looks bright!


  1. This is similar to other languages, like WSGI, Rack, Servlet, WAI, and the like. ↩︎