Versions in this module Expand all Collapse all v0 v0.26.0 Oct 10, 2023 v0.25.0 Jun 8, 2023 Changes in this version + func ApplyAsync(ctx context.Context, fx Func[A, *Maybe[B]], input A) <-chan *Maybe[B] + func Collect(c <-chan T) (v []T) + func FirstError(entries ...*Maybe[T]) (string, error) + func FirstErrorExcludingBrokenIPv6Errors(entries ...*Maybe[T]) (string, error) + func Map(ctx context.Context, parallelism Parallelism, fx Func[A, *Maybe[B]], ...) <-chan *Maybe[B] + func ParallelAsync(ctx context.Context, parallelism Parallelism, input A, ...) <-chan *Maybe[B] + func StreamList(ts ...T) <-chan T + func Zip(sources ...<-chan T) <-chan T + func ZipAndCollect(sources ...<-chan T) []T + type AddressSet struct + M map[string]bool + func NewAddressSet(dns ...*Maybe[*ResolvedAddresses]) *AddressSet + func (as *AddressSet) Add(addrs ...string) *AddressSet + func (as *AddressSet) RemoveBogons() *AddressSet + func (as *AddressSet) ToEndpoints(network EndpointNetwork, port EndpointPort, options ...EndpointOption) (v []*Endpoint) + type ConnPool struct + func (p *ConnPool) Close() error + func (p *ConnPool) MaybeTrack(c io.Closer) + type Counter struct + func NewCounter() *Counter[T] + func (c *Counter[T]) Func() Func[T, *Maybe[T]] + func (c *Counter[T]) Value() int64 + type DNSLookupOption func(*DomainToResolve) + func DNSLookupOptionIDGenerator(value *atomic.Int64) DNSLookupOption + func DNSLookupOptionLogger(value model.Logger) DNSLookupOption + func DNSLookupOptionTags(value ...string) DNSLookupOption + func DNSLookupOptionZeroTime(value time.Time) DNSLookupOption + type DomainName string + type DomainToResolve struct + Domain string + IDGenerator *atomic.Int64 + Logger model.Logger + Tags []string + ZeroTime time.Time + func NewDomainToResolve(domain DomainName, options ...DNSLookupOption) *DomainToResolve + type Endpoint struct + Address string + Domain string + IDGenerator *atomic.Int64 + Logger model.Logger + Network string + Tags []string + ZeroTime time.Time + func NewEndpoint(network EndpointNetwork, address EndpointAddress, options ...EndpointOption) *Endpoint + type EndpointAddress string + type EndpointNetwork string + type EndpointOption func(*Endpoint) + func EndpointOptionDomain(value string) EndpointOption + func EndpointOptionIDGenerator(value *atomic.Int64) EndpointOption + func EndpointOptionLogger(value model.Logger) EndpointOption + func EndpointOptionTags(value ...string) EndpointOption + func EndpointOptionZeroTime(value time.Time) EndpointOption + type EndpointPort uint16 + type Func interface + Apply func(ctx context.Context, a A) B + func Compose10(f0 Func[T0, *Maybe[T1]], f1 Func[T1, *Maybe[T2]], f2 Func[T2, *Maybe[T3]], ...) Func[T0, *Maybe[T10]] + func Compose11(f0 Func[T0, *Maybe[T1]], f1 Func[T1, *Maybe[T2]], f2 Func[T2, *Maybe[T3]], ...) Func[T0, *Maybe[T11]] + func Compose12(f0 Func[T0, *Maybe[T1]], f1 Func[T1, *Maybe[T2]], f2 Func[T2, *Maybe[T3]], ...) Func[T0, *Maybe[T12]] + func Compose13(f0 Func[T0, *Maybe[T1]], f1 Func[T1, *Maybe[T2]], f2 Func[T2, *Maybe[T3]], ...) Func[T0, *Maybe[T13]] + func Compose14(f0 Func[T0, *Maybe[T1]], f1 Func[T1, *Maybe[T2]], f2 Func[T2, *Maybe[T3]], ...) Func[T0, *Maybe[T14]] + func Compose2(f Func[A, *Maybe[B]], g Func[B, *Maybe[C]]) Func[A, *Maybe[C]] + func Compose3(f0 Func[T0, *Maybe[T1]], f1 Func[T1, *Maybe[T2]], f2 Func[T2, *Maybe[T3]]) Func[T0, *Maybe[T3]] + func Compose4(f0 Func[T0, *Maybe[T1]], f1 Func[T1, *Maybe[T2]], f2 Func[T2, *Maybe[T3]], ...) Func[T0, *Maybe[T4]] + func Compose5(f0 Func[T0, *Maybe[T1]], f1 Func[T1, *Maybe[T2]], f2 Func[T2, *Maybe[T3]], ...) Func[T0, *Maybe[T5]] + func Compose6(f0 Func[T0, *Maybe[T1]], f1 Func[T1, *Maybe[T2]], f2 Func[T2, *Maybe[T3]], ...) Func[T0, *Maybe[T6]] + func Compose7(f0 Func[T0, *Maybe[T1]], f1 Func[T1, *Maybe[T2]], f2 Func[T2, *Maybe[T3]], ...) Func[T0, *Maybe[T7]] + func Compose8(f0 Func[T0, *Maybe[T1]], f1 Func[T1, *Maybe[T2]], f2 Func[T2, *Maybe[T3]], ...) Func[T0, *Maybe[T8]] + func Compose9(f0 Func[T0, *Maybe[T1]], f1 Func[T1, *Maybe[T2]], f2 Func[T2, *Maybe[T3]], ...) Func[T0, *Maybe[T9]] + func DNSLookupGetaddrinfo() Func[*DomainToResolve, *Maybe[*ResolvedAddresses]] + func DNSLookupUDP(resolver string) Func[*DomainToResolve, *Maybe[*ResolvedAddresses]] + func HTTPRequest(options ...HTTPRequestOption) Func[*HTTPTransport, *Maybe[*HTTPResponse]] + func HTTPRequestOverQUIC(options ...HTTPRequestOption) Func[*QUICConnection, *Maybe[*HTTPResponse]] + func HTTPRequestOverTCP(options ...HTTPRequestOption) Func[*TCPConnection, *Maybe[*HTTPResponse]] + func HTTPRequestOverTLS(options ...HTTPRequestOption) Func[*TLSConnection, *Maybe[*HTTPResponse]] + func HTTPTransportQUIC() Func[*QUICConnection, *Maybe[*HTTPTransport]] + func HTTPTransportTCP() Func[*TCPConnection, *Maybe[*HTTPTransport]] + func HTTPTransportTLS() Func[*TLSConnection, *Maybe[*HTTPTransport]] + func QUICHandshake(pool *ConnPool, options ...QUICHandshakeOption) ... + func TCPConnect(pool *ConnPool) Func[*Endpoint, *Maybe[*TCPConnection]] + func TLSHandshake(pool *ConnPool, options ...TLSHandshakeOption) ... + type HTTPRequestOption func(*httpRequestFunc) + func HTTPRequestOptionAccept(value string) HTTPRequestOption + func HTTPRequestOptionAcceptLanguage(value string) HTTPRequestOption + func HTTPRequestOptionHost(value string) HTTPRequestOption + func HTTPRequestOptionMethod(value string) HTTPRequestOption + func HTTPRequestOptionReferer(value string) HTTPRequestOption + func HTTPRequestOptionURLPath(value string) HTTPRequestOption + func HTTPRequestOptionUserAgent(value string) HTTPRequestOption + type HTTPResponse struct + Address string + Domain string + HTTPRequest *http.Request + HTTPResponse *http.Response + HTTPResponseBodySnapshot []byte + IDGenerator *atomic.Int64 + Logger model.Logger + Network string + Trace *measurexlite.Trace + ZeroTime time.Time + type HTTPTransport struct + Address string + Domain string + IDGenerator *atomic.Int64 + Logger model.Logger + Network string + Scheme string + TLSNegotiatedProtocol string + Trace *measurexlite.Trace + Transport model.HTTPTransport + ZeroTime time.Time + type Maybe struct + Error error + Observations []*Observations + Operation string + State State + func Parallel(ctx context.Context, parallelism Parallelism, input A, ...) []*Maybe[B] + type Observations struct + NetworkEvents []*model.ArchivalNetworkEvent + QUICHandshakes []*model.ArchivalTLSOrQUICHandshakeResult + Queries []*model.ArchivalDNSLookupResult + Requests []*model.ArchivalHTTPRequestResult + TCPConnect []*model.ArchivalTCPConnectResult + TLSHandshakes []*model.ArchivalTLSOrQUICHandshakeResult + func ExtractObservations(rs ...*Maybe[T]) (out []*Observations) + func NewObservations() *Observations + type Parallelism int + type QUICConnection struct + Address string + Domain string + IDGenerator *atomic.Int64 + Logger model.Logger + Network string + QUICConn quic.EarlyConnection + TLSConfig *tls.Config + TLSState tls.ConnectionState + Trace *measurexlite.Trace + ZeroTime time.Time + type QUICHandshakeOption func(*quicHandshakeFunc) + func QUICHandshakeOptionInsecureSkipVerify(value bool) QUICHandshakeOption + func QUICHandshakeOptionRootCAs(value *x509.CertPool) QUICHandshakeOption + func QUICHandshakeOptionServerName(value string) QUICHandshakeOption + type ResolvedAddresses struct + Addresses []string + Domain string + IDGenerator *atomic.Int64 + Logger model.Logger + Trace *measurexlite.Trace + ZeroTime time.Time + type TCPConnection struct + Address string + Conn net.Conn + Domain string + IDGenerator *atomic.Int64 + Logger model.Logger + Network string + Trace *measurexlite.Trace + ZeroTime time.Time + type TLSConnection struct + Address string + Conn netxlite.TLSConn + Domain string + IDGenerator *atomic.Int64 + Logger model.Logger + Network string + TLSState tls.ConnectionState + Trace *measurexlite.Trace + ZeroTime time.Time + type TLSHandshakeOption func(*tlsHandshakeFunc) + func TLSHandshakeOptionInsecureSkipVerify(value bool) TLSHandshakeOption + func TLSHandshakeOptionNextProto(value []string) TLSHandshakeOption + func TLSHandshakeOptionRootCAs(value *x509.CertPool) TLSHandshakeOption + func TLSHandshakeOptionServerName(value string) TLSHandshakeOption