Building a programmable web for everyone.

Join us on Slack , and GitHub.

WebPipes are a work-in-progress open proposal for linking together web services. Essentially, you can think of Webpipes as the web version of Unix programs; small utilities available over HTTP that do one thing, and do it well. Fittingly, Webpipes follow the Unix philosophy:

  • Write programs that do one thing and do it well.
  • Write programs to work together.
  • Write programs to handle text streams, because that is a universal interface.

The magic comes when you start chaining pipes together. You can create really amazing workflows by combining a few small pieces together.

But... why?

Aside from the beauty of composing pipelines, individual Webpipes can be called directly as well. In fact, Webpipes and pipelines both share the same interface for handling inputs and outputs. This common interface provides users easy use since clients can abstract away the underlying logic and requirements behind requests, inputs, outputs, and types.

Further, this common input/output interface essentially eliminates the time necessary to discover, research, learn & implement new APIs. All developers need to know is the name of an API to begin making calls.

Once Webpipe registries become available, URL calls can be reduced down to just a namespace, like @github/convert-markdown or @google/vision/detect-image-text .

How do they work?

Since a Webpipe is language endpoint and essentially just a script that receives input via HTTP POST/GET, there's not much else to know other than how to structure the output.

The core behaviorial requirements are handled by client and server libraries.

Precise requirements are covered in the specification .