pipe API

An API discussed in #31
This is a spited part of #34.
This will be discussed after HTTP handler #38 and manip API #39

The detail is discussed in #31 and see it.