https://github.com/wybiral/hookah
A cross-platform tool for data pipelines.
https://github.com/wybiral/hookah
data-pipeline fan-in fan-out firehose golang hookah http pipe pipeline serial tcp unix-domain-socket websockets
Last synced: 1 day ago
JSON representation
A cross-platform tool for data pipelines.
- Host: GitHub
- URL: https://github.com/wybiral/hookah
- Owner: wybiral
- License: apache-2.0
- Created: 2018-02-16T23:17:16.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2020-03-12T15:07:42.000Z (almost 6 years ago)
- Last Synced: 2024-06-20T02:09:19.335Z (over 1 year ago)
- Topics: data-pipeline, fan-in, fan-out, firehose, golang, hookah, http, pipe, pipeline, serial, tcp, unix-domain-socket, websockets
- Language: Go
- Homepage:
- Size: 3.09 MB
- Stars: 92
- Watchers: 9
- Forks: 9
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# hookah
A cross-platform tool for data pipelines.
[](https://godoc.org/github.com/wybiral/hookah)
# Download options
- [Releases](https://github.com/wybiral/hookah/releases)
- [Sourcecode](https://github.com/wybiral/hookah/archive/master.zip)
# Build instructions
### go get
```
go get github.com/wybiral/hookah/cmd/hookah
```
### go build
```
go build github.com/wybiral/hookah/cmd/hookah
```
# Usage instructions (CLI)
The hookah command allows you to pipe data between various sources/destinations.
By default pipes are full duplex but can be limited to input/output-only mode.
For details run `hookah -h`
## Examples
Pipe from stdin/stdout to a new TCP listener on port 8080:
```
hookah stdio tcp-listen://localhost:8080
```
Note: this is the same even if you ommit the `stdio` part because hookah will
assume stdio is indended when only one node (tcp-listen in this case) is used.
Pipe from a TCP client on port 8080 to a new WebSocket listener on
port 8081:
```
hookah tcp://localhost:8080 ws-listen://localhost:8081
```
Pipe from a new Unix domain socket listener to a TCP client on port 8080:
```
hookah unix-listen://path/to/sock tcp://localhost:8080
```
Pipe only the input from a TCP client to the output of another TCP client:
```
hookah -i tcp://:8080 -o tcp://:8081
```
Fan-out the input from a TCP listener to the output of multiple TCP clients:
```
hookah -i tcp-listen://:8080 -o tcp://:8081 -o tcp://:8082 -o tcp://:8083
```
# Usage instructions (Go package)
[See godoc page](https://godoc.org/github.com/wybiral/hookah).