datahub/config.go (42 lines of code) (raw):
package datahub
import (
"fmt"
"math"
"net/http"
"runtime"
"time"
)
type Config struct {
UserAgent string
CompressorType CompressorType
EnableBinary bool
EnableSchemaRegistry bool
HttpClient *http.Client
}
func NewDefaultConfig() *Config {
return &Config{
UserAgent: DefaultUserAgent(),
CompressorType: NOCOMPRESS,
EnableBinary: true,
EnableSchemaRegistry: false,
HttpClient: DefaultHttpClient(),
}
}
// DefaultHttpClient returns a default HTTP client with sensible values.
func DefaultHttpClient() *http.Client {
return &http.Client{
Transport: &http.Transport{
DialContext: TraceDialContext(10 * time.Second),
Proxy: http.ProxyFromEnvironment,
MaxIdleConns: math.MaxInt32,
MaxIdleConnsPerHost: math.MaxInt32,
MaxConnsPerHost: math.MaxInt32,
IdleConnTimeout: 30 * time.Second,
TLSHandshakeTimeout: 10 * time.Second,
ExpectContinueTimeout: 1 * time.Second,
ResponseHeaderTimeout: 100 * time.Second,
},
}
}
// DefaultUserAgent returns a default user agent
func DefaultUserAgent() string {
return fmt.Sprintf("godatahub/%s golang/%s %s", DATAHUB_SDK_VERSION, runtime.Version(), runtime.GOOS)
}