๐Ÿ“š azuretls-client - Awesome Go Library for Networking

Go Gopher mascot for azuretls-client

An easy-to-use HTTP client 100% in Go to spoof TLS/JA3 and HTTP2 fingerprint

๐Ÿท๏ธ Networking
๐Ÿ“‚ HTTP Clients
โญ 0 stars
View on GitHub ๐Ÿ”—

Detailed Description of azuretls-client

AzureTLS Client

GoDoc codecov build Go Report Card License

A powerful HTTP client for Go that's simple to use but gives you full control when you need it.

Perfect for API clients, web scraping, testing, and any situation where you need more than the standard library offers, without the complexity.

Installation

go get github.com/Noooste/azuretls-client

Quick Start - 30 Seconds

package main

import (
    "fmt"
    "log"
    "github.com/Noooste/azuretls-client"
)

func main() {
    session := azuretls.NewSession()
    defer session.Close()

    response, err := session.Get("https://api.github.com")
    if err != nil {
        log.Fatal(err)
    }

    fmt.Printf("Status: %d\n", response.StatusCode)
    fmt.Println(response.String())
}

That's it! Just create a session and make requests. This automatically uses Chrome's TLS (JA3) and HTTP/2 fingerprint, making it look like a real browser to servers.

๐Ÿ’ก New to Go? AzureTLS uses a session-based API (similar to creating an http.Client). Each session automatically mimics Chrome by default, no fingerprint configuration needed. Advanced customization is completely optional.

Common Tasks

POST Request with JSON

session := azuretls.NewSession()
defer session.Close()

data := map[string]string{
    "name": "AzureTLS",
    "type": "HTTP Client",
}

response, err := session.Post("https://api.example.com/data", data)
if err != nil {
    log.Fatal(err)
}

fmt.Printf("Status: %d\n", response.StatusCode)

Using a Proxy

session := azuretls.NewSession()
defer session.Close()

// One line proxy setup: supports HTTP, HTTPS, SOCKS4, SOCKS5
err := session.SetProxy("http://username:[email protected]:8080")
if err != nil {
    log.Fatal(err)
}

response, err := session.Get("https://api.ipify.org")

Browser Emulation

session := azuretls.NewSession()
defer session.Close()

// Default: Chrome fingerprint (already active, no configuration needed!)

// Want to mimic a different browser? Just change it:
session.Browser = azuretls.Firefox  // or Safari, Edge, etc.

response, err := session.Get("https://example.com")

Custom Header Ordering

session := azuretls.NewSession()
defer session.Close()

// Precise control over header order
session.OrderedHeaders = azuretls.OrderedHeaders{
    {"User-Agent", "MyApp/1.0"},
    {"Accept", "application/json"},
    {"Authorization", "Bearer token123"},
}

response, err := session.Get("https://api.example.com")

Why AzureTLS vs Standard Library?

Featurenet/httpAzureTLS
API StylePackage or Client-basedSession-based
Browser FingerprintโŒ Looks like Goโœ… Chrome by default
Cookie ManagementManual setupโœ… Automatic jar
Ordered HeadersโŒโœ… Built-in
Proxy SupportManual dialer setupโœ… session.SetProxy()
Multiple Proxy TypesManualโœ… HTTP/SOCKS4/SOCKS5
Custom TLS (JA3/JA4)โŒโœ… Easy
HTTP/2 CustomizationโŒโœ… Easy
HTTP/3 SupportโŒโœ… Easy
Browser PresetsโŒโœ… Chrome/Firefox/Safari/Edge

๐ŸŒŸ Key Features

  • ๐ŸŒ Modern Protocols: HTTP/1.1, HTTP/2, and HTTP/3 support
  • ๐Ÿ”ง TLS Fingerprinting: Full control over ClientHello (JA3/JA4)
  • ๐ŸŽญ Browser Emulation: Chrome, Firefox, Safari, Edge presets
  • ๐Ÿ”— Advanced Proxy Support: HTTP, HTTPS, SOCKS4, SOCKS5 with authentication.
  • โ›“๏ธ Proxy Chaining: Multi-hop proxy connections for enhanced anonymity
  • ๐Ÿ“‹ Header Control: Precise ordering and custom headers
  • ๐Ÿช Cookie Management: Automatic handling with persistent jar
  • ๐Ÿ”’ SSL Pinning: Enhanced security with certificate validation
  • ๐Ÿ› Debug Tools: Request logging and dumping capabilities

Documentation

Learn More

Use Cases

Perfect for:

  • ๐Ÿ”Œ API Integration: REST clients that look like real browsers by default
  • ๐ŸŒ Web Scraping: Automatic browser fingerprinting without configuration
  • ๐Ÿ›ก๏ธ Testing antibot systems: Avoid bot detection with authentic browser signatures
  • ๐Ÿ”„ Proxy Rotation: Built-in support for multiple proxy types
  • ๐Ÿงช Security Testing: Custom TLS configurations for advanced testing
  • ๐Ÿ“Š Load Testing: High-performance concurrent requests

Multi-Language Support via CFFI

AzureTLS can be used from any programming language that supports C Foreign Function Interface. Read the CFFI documentation for full details.

Community & Support

Show Your Support

If AzureTLS helps you build something awesome:

  • โญ Star this repository
  • ๐Ÿ› Report bugs or suggest features
  • ๐Ÿ’ก Share your use cases in discussions
  • ๐Ÿค Contribute code or documentation
  • ๐ŸŒ Create bindings for your favorite programming language

"Buy Me A Coffee"

Acknowledgments

Built with โค๏ธ by the open source community. Special thanks to all contributors.


๐Ÿ›ก๏ธ Need Antibot Bypass?

TLS fingerprinting alone isn't enough for modern bot protection. Hyper Solutions provides the missing piece - API endpoints that generate valid antibot tokens for:

Akamai โ€ข DataDome โ€ข Kasada โ€ข Incapsula

No browser automation. Just simple API calls that return the exact cookies and headers these systems require.

๐Ÿš€ Get Your API Key | ๐Ÿ“– Docs | ๐Ÿ’ฌ Discord