cssivision / Reverseproxy
Licence: mit
a minimalist http/https proxy library for golang
Stars: ✭ 67
Programming Languages
go
31211 projects - #10 most used programming language
Projects that are alternatives of or similar to Reverseproxy
Node.pas
Asynchronous Event-driven server programming for EMB Delphi, powered by libuv.
Stars: ✭ 45 (-32.84%)
Mutual labels: https
Netcore Postgres Oauth Boiler
A basic .NET Core website boilerplate using PostgreSQL for storage, Adminer for db management, Let's Encrypt for SSL certificates and NGINX for routing.
Stars: ✭ 57 (-14.93%)
Mutual labels: https
Low Latency Android Ios Linux Windows Tvos Macos Interactive Audio Platform
🇸Superpowered Audio, Networking and Cryptographics SDKs. High performance and cross platform on Android, iOS, macOS, tvOS, Linux, Windows and modern web browsers.
Stars: ✭ 1,121 (+1573.13%)
Mutual labels: https
Hqmnetworking
基于AFN3.x核心类AFURLSessionManager封装的网络请求,支持 HTTPS 请求验证,可以配置请求头,支持多图上传并可选带进度回调,支持 block、delegate(代理) 请求回调,详见
Stars: ✭ 49 (-26.87%)
Mutual labels: https
Certify
SSL Certificate Manager UI for Windows, powered by Let's Encrypt. Download from certifytheweb.com
Stars: ✭ 1,075 (+1504.48%)
Mutual labels: https
Wolfssl
wolfSSL (formerly CyaSSL) is a small, fast, portable implementation of TLS/SSL for embedded devices to the cloud. wolfSSL supports up to TLS 1.3!
Stars: ✭ 1,098 (+1538.81%)
Mutual labels: https
Katwebx
An extremely fast static web server and reverse proxy for the modern web.
Stars: ✭ 39 (-41.79%)
Mutual labels: https
Go Mitmproxy
mitmproxy implemented with golang. 用 Golang 实现的中间人攻击(Man-in-the-middle),解析、监测、篡改 HTTP/HTTPS 流量。
Stars: ✭ 61 (-8.96%)
Mutual labels: https
Qtwebapp
QtWebApp is a HTTP server like Java servlets, written in C++ with the Qt framework.
Stars: ✭ 50 (-25.37%)
Mutual labels: https
Terraform Aws Alb
Terraform module to provision a standard ALB for HTTP/HTTP traffic
Stars: ✭ 53 (-20.9%)
Mutual labels: https
Clojurl
An example Clojure CLI HTTP/S client using GraalVM native image
Stars: ✭ 59 (-11.94%)
Mutual labels: https
Halive
A fast http and https prober, to check which URLs are alive
Stars: ✭ 47 (-29.85%)
Mutual labels: https
Titanium Web Proxy
A cross-platform asynchronous HTTP(S) proxy server in C#.
Stars: ✭ 1,122 (+1574.63%)
Mutual labels: https
Https
Secure HTTP client with SSL pinning for Nativescript - iOS/Android
Stars: ✭ 45 (-32.84%)
Mutual labels: https
Devserver
A simple HTTPS server for local development. Implemented in Rust.
Stars: ✭ 57 (-14.93%)
Mutual labels: https
Esa Restlight
ESA Restlight is a lightweight and rest-oriented web framework.
Stars: ✭ 67 (+0%)
Mutual labels: https
Docker Letsencrypt Certgen
Docker image to generate, renew, revoke RSA and/or ECDSA SSL certificates from LetsEncrypt CA using certbot and acme.sh clients in automated fashion
Stars: ✭ 64 (-4.48%)
Mutual labels: https
Zinc
Zinc HTTP Components is an open-source Smalltalk framework to deal with the HTTP networking protocol.
Stars: ✭ 60 (-10.45%)
Mutual labels: https
Introduction
A minimalist proxy library for go, inspired by net/http/httputil
and add support for HTTPS using HTTP Tunnel
Support cancels an in-flight request by closing it's connection
Installation
go get github.com/cssivision/reverseproxy
Usage
A simple proxy
package main
import (
"net/http"
"net/url"
"github.com/cssivision/reverseproxy"
)
func main() {
http.ListenAndServe(":8080", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
path, err := url.Parse("https://github.com")
if err != nil {
panic(err)
return
}
proxy := reverseproxy.NewReverseProxy(path)
proxy.ServeHTTP(w, r)
}))
}
Use as a proxy server
To use proxy server, you should set browser to use the proxy server as an HTTP proxy.
package main
import (
"net/http"
"net/url"
"github.com/cssivision/reverseproxy"
)
func main() {
http.ListenAndServe(":8080", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
path, err := url.Parse("http://" + r.Host)
if err != nil {
panic(err)
return
}
proxy := reverseproxy.NewReverseProxy(path)
proxy.ServeHTTP(w, r)
// Specific for HTTP and HTTPS
// if r.Method == "CONNECT" {
// proxy.ProxyHTTPS(w, r)
// } else {
// proxy.ProxyHTTP(w, r)
// }
}))
}
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].