Skip to content

nwtgck/go-piping-duplex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

piping-duplex

CI

Duplex communication over Piping Server

Installation

Get executable binaries from GitHub Releases

Usage

Person A and B can communicate as follows.

Person A

piping-duplex aaa bbb

Person B

piping-duplex bbb aaa

Example 1

$ echo hello | piping-duplex aaa bbb
1
2
3
4
5
6
7
8
9
10

Person B

$ seq 10 | piping-duplex bbb aaa | base64
aGVsbG8K

NOTE: aGVsbG8K is base64-encoded "hello\n".

Grammar

piping-duplex <upload path> <download path>

Example SSH

Here is an example to use SSH over HTTPS via Piping Server.

In server host, type as follows.

socat 'EXEC:piping-duplex aaa bbb' TCP:127.0.0.1:22

In client host, type as follows.

socat TCP-LISTEN:31376 'EXEC:piping-duplex bbb aaa'

In another terminal in client host, type as follows.

ssh -p 31376 localhost

End-to-end encryption

You can use passphrase-based end-to-end encryption with --symmetric or -c option.

piping-duplex -c aaa bbb

Specify Piping Server

You can specify Piping Server with --server or -s option.

piping-duplex -s https://piping.glitch.me aaa bbb

OR

specify with $PIPING_SERVER environment variable as follows.

export PIPING_SERVER=https://piping.glitch.me

Help

Duplex communication over Piping Server

Usage:
  piping-duplex [flags]

Flags:
  -h, --help            help for piping-duplex
  -s, --server string   Piping Server URL (default "https://ppng.io")
  -c, --symmetric       use symmetric passphrase protection
  -v, --version         show version