bifrost

module
v0.0.0-...-58652bc Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 9, 2023 License: MIT

README

bifrost

A powerful websocket tunnel to transfer HTTP over Websocket.

Features

  • Support HTTP 1.x
  • Duplex communication
  • Automatic reconnection
  • Compression: gzip
  • Encryption: AES
  • WebSocket Secure: wss, refer https://github.com/denji/golang-tls
  • Chunked transfer encoding(specially for large file transfers)
  • Support HTTP2
  • Support websocket, which means Websocket over Websocket
  • Mutiple websocket connection tunnels, improve transmission performance

Installation

  • bin: go get -u github.com/Wenchy/bifrost/cmd/bifrost
  • conf: wget https://raw.githubusercontent.com/Wenchy/bifrost/master/cmd/bifrost/conf.yaml
  • script: wget https://raw.githubusercontent.com/Wenchy/bifrost/master/cmd/bifrost/startstop.sh

Usage

Configuration

cmd/bifrost/conf.yaml

server:
  self_addr: :9098
  peer_addr: ws://localhost:9099/ws
proxies:
  - path: /*
    target: http://localhost
log:
  level: debug # debug, info, warn, error
  dir: ./logs # log directory  
Extended custom HTTP Headers
X-Bifrost-Target

This field directs the forwarded target to the websocket tunnel's peer side, it is like the proxy_pass director in Nginx. If this header field is set, the proxies item in conf.yaml will not be taken into consideration.

e.g.: X-Bifrost-Target: https://www.google.com

Run as daemon

script: cmd/bifrost/startstop.sh

Action Command
Start ./startstop start
Stop ./startstop stop
Restart ./startstop restart

References

Directories

Path Synopsis
cmd
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL