All Projects → gojek → Weaver

gojek / Weaver

Licence: apache-2.0
An Advanced HTTP Reverse Proxy with Dynamic Sharding Strategies

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Weaver

Proxybroker
Proxy [Finder | Checker | Server]. HTTP(S) & SOCKS 🎭
Stars: ✭ 2,767 (+442.55%)
Mutual labels:  proxy, proxy-server
Mycat2
MySQL Proxy using Java NIO based on Sharding SQL,Calcite ,simple and fast
Stars: ✭ 750 (+47.06%)
Mutual labels:  sharding, proxy
Qtgate Desktop Client
A revolutionary internet infrastructure enabling a truly free Network, that offers Stability, Trust, Privacy, and Security
Stars: ✭ 232 (-54.51%)
Mutual labels:  proxy, proxy-server
Goproxy
🦁 goproxy is a proxy server which can forward http or https requests to remote servers./ goproxy 是一个反向代理服务器,支持转发 http/https 请求。
Stars: ✭ 175 (-65.69%)
Mutual labels:  proxy, proxy-server
Athens
A Go module datastore and proxy
Stars: ✭ 3,736 (+632.55%)
Mutual labels:  proxy, proxy-server
Smartproxy
HTTP(S) Rotating Residential proxies - Code examples & General information
Stars: ✭ 205 (-59.8%)
Mutual labels:  proxy, proxy-server
Mallory
HTTP/HTTPS proxy over SSH
Stars: ✭ 251 (-50.78%)
Mutual labels:  proxy, proxy-server
Eagle.tunnel.dotnet.core
稳定易用的代理工具
Stars: ✭ 168 (-67.06%)
Mutual labels:  proxy, proxy-server
Free Proxy List
🔥Free proxy servers list / Updated hourly!
Stars: ✭ 326 (-36.08%)
Mutual labels:  proxy, proxy-server
Macos Fortress
Firewall and Privatizing Proxy for Trackers, Attackers, Malware, Adware, and Spammers with Anti-Virus On-Demand and On-Access Scanning (PF, squid, privoxy, hphosts, dshield, emergingthreats, hostsfile, PAC file, clamav)
Stars: ✭ 307 (-39.8%)
Mutual labels:  proxy, proxy-server
Macos Openvpn Server
macOS OpenVPN Server and Client Configuration (OpenVPN, Tunnelblick, PF)
Stars: ✭ 172 (-66.27%)
Mutual labels:  proxy, proxy-server
Awesome Web Scraping
List of libraries, tools and APIs for web scraping and data processing.
Stars: ✭ 4,510 (+784.31%)
Mutual labels:  proxy, proxy-server
Proxyman
Modern and Delightful Web Debugging Proxy for macOS, iOS, and Android ⚡️
Stars: ✭ 2,571 (+404.12%)
Mutual labels:  proxy, proxy-server
Tor Socks Proxy
🐳 Tiny Docker(🤏 10MB) image as 🧅 Tor SOCKS5 proxy 🛡
Stars: ✭ 218 (-57.25%)
Mutual labels:  proxy, proxy-server
Psiphon
A multi-functional version of a popular network circumvention tool
Stars: ✭ 169 (-66.86%)
Mutual labels:  proxy, proxy-server
Mubeng
An incredibly fast proxy checker & IP rotator with ease.
Stars: ✭ 234 (-54.12%)
Mutual labels:  proxy, proxy-server
Free Email Forwarding
The best free email forwarding for custom domains. Visit our website to get started (SMTP server)
Stars: ✭ 2,024 (+296.86%)
Mutual labels:  proxy, proxy-server
3proxy
3proxy - tiny free proxy server
Stars: ✭ 2,263 (+343.73%)
Mutual labels:  proxy, proxy-server
Socks5
A full-fledged high-performance socks5 proxy server written in C#. Plugin support included.
Stars: ✭ 286 (-43.92%)
Mutual labels:  proxy, proxy-server
Proxy requests
a class that uses scraped proxies to make http GET/POST requests (Python requests)
Stars: ✭ 357 (-30%)
Mutual labels:  proxy, proxy-server

Weaver - A modern HTTP Proxy with Advanced features

Build Status Go Report Card Coverage Status GitHub Release

Description

Weaver is a Layer-7 Load Balancer with Dynamic Sharding Strategies. It is a modern HTTP reverse proxy with advanced features.

Features:

  • Sharding request based on headers/path/body fields
  • Emits Metrics on requests per route per backend
  • Dynamic configuring of different routes (No restarts!)
  • Is Fast
  • Supports multiple algorithms for sharding requests (consistent hashing, modulo, s2 etc)
  • Packaged as a single self contained binary
  • Logs on failures (Observability)

Installation

Build from source

  • Clone the repo:
git clone [email protected]:gojektech/weaver.git
  • Build to create weaver binary
make build

Binaries for various architectures

Download the binary for a release from: here

Architecture

Weaver uses etcd as a control plane to match the incoming requests against a particular route config and shard the traffic to different backends based on some sharding strategy.

Weaver can be configured for different routes matching different paths with various sharding strategies through a simple route config named ACL.

The various sharding strategies supported by weaver are:

  • Consistent hashing (hashring)
  • Simple lookup based
  • Modulo
  • Prefix lookup
  • S2 based

Deploying to Kubernetes

Currently we support deploying to kubernetes officially. You can check the doc here

Examples

We have examples defined to deploy it to kubernetes and using acls. Please checkout out examples

Configuration

Defining ACL's

Details on configuring weaver can be found here

Please note

As the famous saying goes, All Load balancers are proxies, but not every proxy is a load balancer, weaver currently does not support load balancing.

Contributing

If you'd like to contribute to the project, refer to the contributing documentation

License

Copyright 2018, GO-JEK Tech (http://gojek.tech)

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].