{"action":"created","issue":{"url":"https://api.github.com/repos/seanmonstar/warp/issues/58","repository_url":"https://api.github.com/repos/seanmonstar/warp","labels_url":"https://api.github.com/repos/seanmonstar/warp/issues/58/labels{/name}","comments_url":"https://api.github.com/repos/seanmonstar/warp/issues/58/comments","events_url":"https://api.github.com/repos/seanmonstar/warp/issues/58/events","html_url":"https://github.com/seanmonstar/warp/issues/58","id":350611775,"node_id":"MDU6SXNzdWUzNTA2MTE3NzU=","number":58,"title":"Relation to tower-web","user":{"login":"alexreg","id":67036,"node_id":"MDQ6VXNlcjY3MDM2","avatar_url":"https://avatars3.githubusercontent.com/u/67036?v=4","gravatar_id":"","url":"https://api.github.com/users/alexreg","html_url":"https://github.com/alexreg","followers_url":"https://api.github.com/users/alexreg/followers","following_url":"https://api.github.com/users/alexreg/following{/other_user}","gists_url":"https://api.github.com/users/alexreg/gists{/gist_id}","starred_url":"https://api.github.com/users/alexreg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alexreg/subscriptions","organizations_url":"https://api.github.com/users/alexreg/orgs","repos_url":"https://api.github.com/users/alexreg/repos","events_url":"https://api.github.com/users/alexreg/events{/privacy}","received_events_url":"https://api.github.com/users/alexreg/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2018-08-14T21:53:56Z","updated_at":"2018-08-27T13:43:12Z","closed_at":null,"author_association":"NONE","body":"I just read your blog post that introduces the warp library, so I'm quite intrigued now as to how things will develop now with tower and tower-web quickly entering the stage. I am certainly attracted by the design philosophy of warp, but I do want to know how you see it in relation to tower-web, which you mentioned in passing. From an issue you have open here, it would seem the `Filter` and `Service` traits are somehow analogous? I'm presuming neither tower-web nor warp will ever include the other as a dependency, but what will the relation between them be, going forwards? Direct competitors?\r\n\r\nSide question: does warp support async workflows like Gotham or such?"},"comment":{"url":"https://api.github.com/repos/seanmonstar/warp/issues/comments/416230918","html_url":"https://github.com/seanmonstar/warp/issues/58#issuecomment-416230918","issue_url":"https://api.github.com/repos/seanmonstar/warp/issues/58","id":416230918,"node_id":"MDEyOklzc3VlQ29tbWVudDQxNjIzMDkxOA==","user":{"login":"dmexe","id":38505,"node_id":"MDQ6VXNlcjM4NTA1","avatar_url":"https://avatars1.githubusercontent.com/u/38505?v=4","gravatar_id":"","url":"https://api.github.com/users/dmexe","html_url":"https://github.com/dmexe","followers_url":"https://api.github.com/users/dmexe/followers","following_url":"https://api.github.com/users/dmexe/following{/other_user}","gists_url":"https://api.github.com/users/dmexe/gists{/gist_id}","starred_url":"https://api.github.com/users/dmexe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dmexe/subscriptions","organizations_url":"https://api.github.com/users/dmexe/orgs","repos_url":"https://api.github.com/users/dmexe/repos","events_url":"https://api.github.com/users/dmexe/events{/privacy}","received_events_url":"https://api.github.com/users/dmexe/received_events","type":"User","site_admin":false},"created_at":"2018-08-27T13:43:12Z","updated_at":"2018-08-27T13:43:12Z","author_association":"CONTRIBUTOR","body":"> We've been talking about how to reduce duplicate efforts, and find pieces that can be combined. It's possible the projects (tower-web and warp) merge at some point, exposing both APIs as \"flavors\". If you know the Scala world at all, here is how I see the projects:\r\n\r\nThe current state of these projects is going to the wrong direction (as I think). \r\n1) https://github.com/carllerche/tower-web/tree/master/src/middleware\r\n2) https://github.com/seanmonstar/warp/pull/73\r\n\r\nBoth `warp` and `tower-web` are starting to develop their web frameworks, which breaks the main `finagle` rule - \"all components just a small functions which implement a simple contract Request -> Future<Response>\". At this moment, `warp` has Filter abstraction and `tower-web` has a Middleware abstraction, which are going to duplicate the same functionality.\r\n\r\nSo both `warp` and `tower-web` should implement only routing solution and content negotiation, all other things such as CorsFilter, ServerStatsFilter, RequestLogFilter, etc have to be in `tower-http` services.\r\n\r\nHere an example which that could be (using LiftService)\r\n```\r\nlet endpoint = warp::any().map(|| \"ok\");\r\nlet new_service = endpoint.lift()\r\n  .and_then(Cors::new)\r\n  .and_then(RequestLog::new)\r\n  .and_then(HttpStats::new)\r\n  .and_then(HttpTracing::new);\r\n\r\nserver:run(new_service);\r\n```\r\n"}}
{"actor":{"display_login":"dmexe"}}