Interprocess pipeline is a difficult problem only because there is no standard encoding. Elvish has pairs of builtin commands like from-json and to-json; so if your command takes JSON and writes JSON, you can use it in a pipeline like:
... | to-json | your-command | from-json | ...
It is also trivial to wrap it into a function like: fn f { to-json | your-command | from-json }PowerShell on Windows is the only production system that I have used which passes "objects" through pipes.
It's a challenge for me to use well; not sure all that richness is composable. Better programmers than I am would know.
Elvish is pretty nifty, but the biggest failing point to me is that the fancy rich pipelines really work just for in-process stuff, which for me kinda loses the point of being a shell. Of course I do realize that rich (polyglot) interprocess pipelines is a difficult problem; some might say a pipedream.