Fast Proxy Stars Watchers

banner

Why FastProxy?

FastProxy is lightweight, easy-to-use proxy dialing module that makes using proxies with fasthttp easier. FastProxy also includes proxy formatting for Proxy-Authentication and a connection cache system.

Quick Usage

package main

// Import Fasthttp and FastProxy
import (
    FastProxy "github.com/realTristan/FastProxy"
    "github.com/valyala/fasthttp"
)

// Main Function
func main() {
    // Enable proxy formatting (ex: user:pass@ip:port -> ip:port@user:pass)
    var enableProxyFormatting bool = true

    // Create new request object
    var request *fasthttp.Request = fasthttp.AcquireRequest()
    request.SetRequestURI("URL")

    // Create client and use FastProxy Dial
    var client *fasthttp.Client = &fasthttp.Client{}
    client.Dial = FastProxy.Dial("ip:port@user:pass", enableProxyFormatting)
    
    // Create Response Object
    var response *fasthttp.Response = fasthttp.AcquireResponse()
    
    // Release Response when not needed anymore
    defer fasthttp.ReleaseResponse(response)

    // Send the http request
    var err = client.Do(request, response)
    if err != nil {
        // Handle Error
        return
    }

    // Print the request Body, StatusCode
    println(string(response.Body()))
    println(response.StatusCode())
}

Request Proxy

package main

// Import FastProxy and fasthttp
import (
	FastProxy "github.com/realTristan/FastProxy"

	"github.com/valyala/fasthttp"
)

// Main Function
func main() {
    // Create an empty error variable
	var err error

	// Create a fasthttp request object
	var req *fasthttp.Request = fasthttp.AcquireRequest()
	req.SetRequestURI("URL")

	// Create a fasthttp response object
	var resp *fasthttp.Response = fasthttp.AcquireResponse()
	defer fasthttp.ReleaseResponse(resp)

	// Create a FastProxy Request Object
	var FastProxyRequest FastProxy.Request = FastProxy.Request{
		Client:      &fasthttp.Client{},
		Request:     req,
		Response:    resp,
		FormatProxy: true,
		Proxy:       "ip:port@user:pass",
	}

	// Send the request
	resp, err = FastProxy.SendRequest(FastProxyRequest)

	// Handle Error
	if err != nil {
		return
	}

	// Print Response body and Response status code
	println(resp.Body())
	println(resp.StatusCode())
}

Proxy Formatting

// Format proxies to ip:port@user:pass
func FormatProxyList() {

    // Create a new proxy slice
    var proxies []string = []string{
        "ip:port@user:pass",
        "user:pass@ip:port",
    }

    // Iterate through the proxy slice
    for i := 0; i < len(proxies); i++ {
        var proxy string = proxies[i]

        // Format the proxy
        proxies[i] = FastProxy.FormatProxy(&proxy)
    }

    // Print the formatted proxies
    println(proxies)
}

GitHub

View Github