Include web-pipe in hanami 2 stack

Hi there!

I know that I’m quite late to the party, but at the same time I know that, once v2.0 is released, something like this proposal will be impossible to integrate due to massive breaking changes (and v3.0 seems too far right now :)). So I decided that at least I would try!

IMHO, one of the best things that has happened to the Ruby community is hanami and dry-rb working together. Having all the small pieces dry-rb provides integrated in a full featured framework like hanami is simple gorgeous.

Some months ago I managed to convince my boss to use dry-rb in one middle sized project. It has been a very nice experience. I used dry-web-roda stack and I liked it very much. I found that everything plaid smoothly except for one part: roda. Even when Jeremy Evans has made an excellent job with it, I just felt that its philosophy was too much different from dry-rb and that this friction was very noticeable when considering the app as a whole (router/actions coupling, mutability, lack of simple integration with dry-rb…). For this reason I decided to develop web_pipe as a replacement for roda in my stack. I developed it with dry-rb in mind, so it plays really nice with the ecosystem even if it doesn’t depend on it.

web_pipe is the equivalent of hanami-controller, so there is still a router missing. However, I found that hanami-router was just perfect.

What I’d like to see is web_pipe being part of the full-framework picture that hanami offers. It already plays very well with hanami-router, but it could be even improved by using a convention like the one in use for resolving hanami actions (controller#action) but in this case to resolve web_pipe apps from an IoC container. It also has integrations with dry-schema and dry-view. The role of hanami would include here configuring them automatically. I already did something similar in dry-web-web_pipe, which is like dry-web-roda but switching pieces.

I know hanami v2 is near and that I haven’t a lot of chances, but I’d like just to ask for five minutes of your time to read a bit of the docs. Of course, I’d be more than happy to do the integration work in hanami. The nice thing of web_pipe is not only the dry-rb integration, but its design model. It’s a one way pipe application builder, same one that is used in Elixir’s plug with great success for small and large projects. Of course, functional programming is another core concept in web_pipe.

Well, thanks for your time whatever we end up doing :slight_smile: