Giter Club home page Giter Club logo

bifrost's Introduction

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

bifrost's People

Contributors

wenchy avatar wenchyzhu avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.