Piping Server - HTTPを使ったパイプライン
UnixやLinuxではコマンドをパイプする機能があります。あるコマンドの出力を次のコマンドに繋ぐことで、複雑な処理を一度にできるようになります。開発者であればよく利用する機能でしょう。しかし、このパイプラインはローカルマシン内でしか使えません。 便利な機能なパイプをネットワーク越しでも可能にしよう、それがPiping Serverです。
Piping Serverの使い方
たとえば任意のパスに対して出力します。そうすると受け取り待ちで待機になります。
$ echo 'hello, world' | curl -T - https://ppng.io/hello
[INFO] Waiting for 1 receiver(s)...
別なマシンやターミナルで結果を受け取ります。
$ curl https://ppng.io/hello > hello.txt
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 13 0 13 0 0 118 0 --:--:-- --:--:-- --:--:-- 118
そうすると最初の出力側も終了します。
$ echo 'hello, world' | curl -T - https://ppng.io/hello
[INFO] Waiting for 1 receiver(s)...
[INFO] A receiver was connected.
[INFO] Start sending to 1 receiver(s)!
[INFO] Sent successfully!
[INFO] All receiver(s) was/were received successfully
簡易的な管理インタフェースもあります。
適当なファイル、パス名で受け取り待ちになります。
もう少しリッチなWebクライアントもあります。
受信もWebブラウザでできます。
Piping Serverはテキストはもちろん、バイナリファイルも送受信できます。コマンドの結果をPiping Serverに送ることで、一旦入力待ちになります。そして別マシンで結果を受け取って処理を続けるなんてことも可能です。クリップボードを別なマシンに送ると言った使い方もできるでしょう。
Piping ServerはTypeScript製のオープンソース・ソフトウェア(MIT License)です。
Piping Server nwtgck/piping-server: Infinitely transfer between every device over pure HTTP: designed for everyone including people using Unix pipe and even for browser users