Today, version 1.0.0 adds structured pipelines:
a mechanism to exchange (almost) arbitrary objects via POSIX pipes, and transform them via external programs, shell builtins or Scheme code.
Example:
dir /proc | where name -starts k | sort-by modified
Internally, objects are serialized before writing them to a pipe - by default as NDJSON, but it can be set manually -
and deserialized when reading them from a pipe.
This allows arbitrary transformations at each pipeline step:
filtering, choosing a subset of the fields, sorting with user-specified criteria, etc.
And each step can be an executable program, a shell builtin or Scheme code.
If you know nushell, they will feel familiar as they are inspired by it - the implementation is fully independent, though.
Yes, they are similar at first glance. As I wrote:
> If you know nushell, they will feel familiar as they are inspired by it - the implementation is fully independent, though.
Looking deeper, there are two main differences:
- Nushell structured pipelines are an internal construct, and only work with nushell builtins. Schemesh uses actual POSIX pipes, which allows to also insert executables in the pipelines.
- schemesh also allows to insert arbitrary Scheme code in the pipelines. Nushell does too, in a sense: you have to write nushell language though
First stable release appeared on HN one year ago: https://news.ycombinator.com/item?id=43061183 Thanks for all the feedback!
Today, version 1.0.0 adds structured pipelines: a mechanism to exchange (almost) arbitrary objects via POSIX pipes, and transform them via external programs, shell builtins or Scheme code.
Example:
possible output: Another example: possible output: Internally, objects are serialized before writing them to a pipe - by default as NDJSON, but it can be set manually - and deserialized when reading them from a pipe.This allows arbitrary transformations at each pipeline step: filtering, choosing a subset of the fields, sorting with user-specified criteria, etc. And each step can be an executable program, a shell builtin or Scheme code.
If you know nushell, they will feel familiar as they are inspired by it - the implementation is fully independent, though.
I'm not too familiar, but is this similar to nushell?
Yes, they are similar at first glance. As I wrote:
> If you know nushell, they will feel familiar as they are inspired by it - the implementation is fully independent, though.
Looking deeper, there are two main differences:
- Nushell structured pipelines are an internal construct, and only work with nushell builtins. Schemesh uses actual POSIX pipes, which allows to also insert executables in the pipelines.
- schemesh also allows to insert arbitrary Scheme code in the pipelines. Nushell does too, in a sense: you have to write nushell language though