Directories ¶
Path | Synopsis |
---|---|
Package atomicx extends sync/atomic.
|
Package atomicx extends sync/atomic. |
Package bytecounter contains code to track the number of bytes sent and received by a probe.
|
Package bytecounter contains code to track the number of bytes sent and received by a probe. |
cmd
|
|
apitool
Command apitool is a simple tool to fetch individual OONI measurements.
|
Command apitool is a simple tool to fetch individual OONI measurements. |
getresources
Command getresources downloads the resources
|
Command getresources downloads the resources |
jafar
Jafar is a censorship simulation tool used for testing OONI.
|
Jafar is a censorship simulation tool used for testing OONI. |
jafar/badproxy
Package badproxy implements misbehaving proxies.
|
Package badproxy implements misbehaving proxies. |
jafar/flagx
Package flagx contains extensions for the standard library flag package.
|
Package flagx contains extensions for the standard library flag package. |
jafar/httpproxy
Package httpproxy contains a censoring HTTP proxy.
|
Package httpproxy contains a censoring HTTP proxy. |
jafar/iptables
Package iptables contains code for managing firewall rules.
|
Package iptables contains code for managing firewall rules. |
jafar/resolver
Package resolver contains a censoring DNS resolver.
|
Package resolver contains a censoring DNS resolver. |
jafar/tlsproxy
Package tlsproxy contains a censoring TLS proxy.
|
Package tlsproxy contains a censoring TLS proxy. |
jafar/uncensored
Package uncensored contains code used by Jafar to evade its own censorship efforts by taking alternate routes.
|
Package uncensored contains code used by Jafar to evade its own censorship efforts by taking alternate routes. |
miniooni
Command miniooni is a simple binary for research and QA purposes with a CLI interface similar to MK and OONI Probe v2.x.
|
Command miniooni is a simple binary for research and QA purposes with a CLI interface similar to MK and OONI Probe v2.x. |
oohelper
Command oohelper contains a simple command line client for the Web Connectivity test helper.
|
Command oohelper contains a simple command line client for the Web Connectivity test helper. |
oohelperd
Command oohelperd contains the Web Connectivity test helper.
|
Command oohelperd contains the Web Connectivity test helper. |
oohelperd/internal/websteps
Package websteps implements the websteps test helper.
|
Package websteps implements the websteps test helper. |
printversion
Command printversion prints the current version of this repository.
|
Command printversion prints the current version of this repository. |
ptxclient
Command ptxclient implements a pluggable transports CLI client.
|
Command ptxclient implements a pluggable transports CLI client. |
Package engine contains the engine API.
|
Package engine contains the engine API. |
experiment/dash
Package dash implements the DASH network experiment.
|
Package dash implements the DASH network experiment. |
experiment/dnscheck
Package dnscheck contains the DNS check experiment.
|
Package dnscheck contains the DNS check experiment. |
experiment/example
Package example contains a simple example experiment.
|
Package example contains a simple example experiment. |
experiment/fbmessenger
Package fbmessenger contains the Facebook Messenger network experiment.
|
Package fbmessenger contains the Facebook Messenger network experiment. |
experiment/hhfm
Package hhfm contains the HTTP Header Field Manipulation network experiment.
|
Package hhfm contains the HTTP Header Field Manipulation network experiment. |
experiment/hirl
Package hirl contains the HTTP Invalid Request Line network experiment.
|
Package hirl contains the HTTP Invalid Request Line network experiment. |
experiment/httphostheader
Package httphostheader contains the HTTP host header network experiment.
|
Package httphostheader contains the HTTP host header network experiment. |
experiment/ndt7
Package ndt7 contains the ndt7 network experiment.
|
Package ndt7 contains the ndt7 network experiment. |
experiment/psiphon
Package psiphon implements the psiphon network experiment.
|
Package psiphon implements the psiphon network experiment. |
experiment/riseupvpn
Package riseupvpn contains the RiseupVPN network experiment.
|
Package riseupvpn contains the RiseupVPN network experiment. |
experiment/run
Package run contains code to run other experiments.
|
Package run contains code to run other experiments. |
experiment/signal
Package signal contains the Signal network experiment.
|
Package signal contains the Signal network experiment. |
experiment/sniblocking
Package sniblocking contains the SNI blocking network experiment.
|
Package sniblocking contains the SNI blocking network experiment. |
experiment/stunreachability
Package stunreachability contains the STUN reachability experiment.
|
Package stunreachability contains the STUN reachability experiment. |
experiment/telegram
Package telegram contains the Telegram network experiment.
|
Package telegram contains the Telegram network experiment. |
experiment/tlstool
Package tlstool contains a TLS tool that we are currently using for running quick and dirty experiments.
|
Package tlstool contains a TLS tool that we are currently using for running quick and dirty experiments. |
experiment/tlstool/internal
Package internal contains the implementation of tlstool.
|
Package internal contains the implementation of tlstool. |
experiment/tor
Package tor contains the tor experiment.
|
Package tor contains the tor experiment. |
experiment/torsf
Package torsf contains the torsf experiment.
|
Package torsf contains the torsf experiment. |
experiment/urlgetter
Package urlgetter implements a nettest that fetches a URL.
|
Package urlgetter implements a nettest that fetches a URL. |
experiment/webconnectivity
Package webconnectivity implements OONI's Web Connectivity experiment.
|
Package webconnectivity implements OONI's Web Connectivity experiment. |
experiment/webconnectivity/internal
Package internal contains internal code.
|
Package internal contains internal code. |
experiment/websteps
Package websteps implements the websteps experiment.
|
Package websteps implements the websteps experiment. |
experiment/whatsapp
Package whatsapp contains the WhatsApp network experiment.
|
Package whatsapp contains the WhatsApp network experiment. |
geolocate
Package geolocate implements IP lookup, resolver lookup, and geolocation.
|
Package geolocate implements IP lookup, resolver lookup, and geolocation. |
httpheader
Package httpheader contains code to set common HTTP headers.
|
Package httpheader contains code to set common HTTP headers. |
httpx
Package httpx contains http extensions.
|
Package httpx contains http extensions. |
internal/httpfailure
Package httpfailure groups a bunch of extra HTTP failures.
|
Package httpfailure groups a bunch of extra HTTP failures. |
internal/sessionresolver
Package sessionresolver contains the resolver used by the session.
|
Package sessionresolver contains the resolver used by the session. |
legacy/assetsdir
Package assetsdir contains code to cleanup the assets dir.
|
Package assetsdir contains code to cleanup the assets dir. |
legacy/errorsx
Package errorsx contains error extensions.
|
Package errorsx contains error extensions. |
legacy/netx
Package netx contains OONI's net extensions.
|
Package netx contains OONI's net extensions. |
legacy/netx/handlers
Package handlers contains default modelx.Handler handlers.
|
Package handlers contains default modelx.Handler handlers. |
legacy/netx/modelx
Package modelx contains the data modelx.
|
Package modelx contains the data modelx. |
legacy/netx/oldhttptransport
Package oldhttptransport contains HTTP transport extensions.
|
Package oldhttptransport contains HTTP transport extensions. |
legacy/netxlogger
Package netxlogger is a logger for netx events.
|
Package netxlogger is a logger for netx events. |
legacy/oonidatamodel
Package oonidatamodel contains the OONI data model.
|
Package oonidatamodel contains the OONI data model. |
legacy/oonitemplates
Package oonitemplates contains templates for experiments.
|
Package oonitemplates contains templates for experiments. |
mockable
Package mockable contains mockable objects
|
Package mockable contains mockable objects |
model
Package model defines shared data structures and interfaces.
|
Package model defines shared data structures and interfaces. |
netx
Package netx contains code to perform network measurements.
|
Package netx contains code to perform network measurements. |
netx/archival
Package archival contains data formats used for archival.
|
Package archival contains data formats used for archival. |
netx/dialer
Package dialer allows you to create a net.Dialer-compatible DialContext-enabled dialer with error wrapping, optional logging, optional network-events saving, and optional proxying.
|
Package dialer allows you to create a net.Dialer-compatible DialContext-enabled dialer with error wrapping, optional logging, optional network-events saving, and optional proxying. |
netx/httptransport
Package httptransport contains HTTP transport extensions.
|
Package httptransport contains HTTP transport extensions. |
netx/tlsdialer
Package tlsdialer contains code to establish TLS connections.
|
Package tlsdialer contains code to establish TLS connections. |
probeservices
Package probeservices contains code to contact OONI probe services.
|
Package probeservices contains code to contact OONI probe services. |
probeservices/testorchestra
Package testorchestra helps with testing the OONI orchestra API.
|
Package testorchestra helps with testing the OONI orchestra API. |
Package fsx contains io/fs extensions.
|
Package fsx contains io/fs extensions. |
Package humanize is like dustin/go-humanize.
|
Package humanize is like dustin/go-humanize. |
Package kvstore contains key-value stores.
|
Package kvstore contains key-value stores. |
Package mlablocate contains a locate.measurementlab.net client implementing v1 of the locate API.
|
Package mlablocate contains a locate.measurementlab.net client implementing v1 of the locate API. |
Package mlablocatev2 implements m-lab locate services API v2.
|
Package mlablocatev2 implements m-lab locate services API v2. |
Package multierror contains code to manage multiple errors.
|
Package multierror contains code to manage multiple errors. |
Package netxlite contains network extensions.
|
Package netxlite contains network extensions. |
dnsx
Package dnsx contains DNS extension types.
|
Package dnsx contains DNS extension types. |
filtering
Package filtering contains primitives for implementing filtering.
|
Package filtering contains primitives for implementing filtering. |
mocks
Package mocks contains mocks for netx types.
|
Package mocks contains mocks for netx types. |
quictesting
Package quictesting contains code useful to test QUIC.
|
Package quictesting contains code useful to test QUIC. |
quicx
Package quicx contains lucas-clemente/quic-go extensions.
|
Package quicx contains lucas-clemente/quic-go extensions. |
Package ooapi contains a client for the OONI API.
|
Package ooapi contains a client for the OONI API. |
apimodel
Package apimodel describes the data types used by OONI's API.
|
Package apimodel describes the data types used by OONI's API. |
internal/generator
Command generator generates code in the ooapi package.
|
Command generator generates code in the ooapi package. |
internal/openapi
Package openapi contains data structures for Swagger v2.0.
|
Package openapi contains data structures for Swagger v2.0. |
Package platform allows you to obtain the platform name.
|
Package platform allows you to obtain the platform name. |
Package ptx contains code to use pluggable transports.
|
Package ptx contains code to use pluggable transports. |
Package randx contains math/rand extensions.
|
Package randx contains math/rand extensions. |
Package runtimex contains runtime extensions.
|
Package runtimex contains runtime extensions. |
Package shellx runs external commands.
|
Package shellx runs external commands. |
Package tunnel allows to create tunnels to speak with OONI backends and other services.
|
Package tunnel allows to create tunnels to speak with OONI backends and other services. |
tutorial
|
|
experiment/torsf/chapter01
-=-=- StartHere -=-=- # Chapter I: main.go using the real torsf implementation In this chapter we will write together a `main.go` file that uses the real `torsf` implementation to run the experiment.
|
-=-=- StartHere -=-=- # Chapter I: main.go using the real torsf implementation In this chapter we will write together a `main.go` file that uses the real `torsf` implementation to run the experiment. |
experiment/torsf/chapter02
-=-=- StartHere -=-=- ## The torsf.go file This file will contain the implementation of the `NewExperimentMeasurer` function.
|
-=-=- StartHere -=-=- ## The torsf.go file This file will contain the implementation of the `NewExperimentMeasurer` function. |
generator
Command generator generates or re-generates the tutorial chapters.
|
Command generator generates or re-generates the tutorial chapters. |
netxlite/chapter01
-=-=- StartHere -=-=- # Chapter I: establishing TCP connections In this chapter we will write together a `main.go` file that uses netxlite to establish a new TCP connection.
|
-=-=- StartHere -=-=- # Chapter I: establishing TCP connections In this chapter we will write together a `main.go` file that uses netxlite to establish a new TCP connection. |
netxlite/chapter02
-=-=- StartHere -=-=- # Chapter I: TLS handshakes In this chapter we will write together a `main.go` file that uses netxlite to establish a new TCP connection and then performs a TLS handshake using the established connection.
|
-=-=- StartHere -=-=- # Chapter I: TLS handshakes In this chapter we will write together a `main.go` file that uses netxlite to establish a new TCP connection and then performs a TLS handshake using the established connection. |
netxlite/chapter03
-=-=- StartHere -=-=- # Chapter I: TLS parroting In this chapter we will write together a `main.go` file that uses netxlite to establish a new TCP connection and then performs a TLS handshake using the established connection.
|
-=-=- StartHere -=-=- # Chapter I: TLS parroting In this chapter we will write together a `main.go` file that uses netxlite to establish a new TCP connection and then performs a TLS handshake using the established connection. |
netxlite/chapter04
-=-=- StartHere -=-=- # Chapter I: Using QUIC In this chapter we will write together a `main.go` file that uses netxlite to establish a new QUIC session with an UDP endpoint.
|
-=-=- StartHere -=-=- # Chapter I: Using QUIC In this chapter we will write together a `main.go` file that uses netxlite to establish a new QUIC session with an UDP endpoint. |
netxlite/chapter05
-=-=- StartHere -=-=- # Chapter I: Using the "system" DNS resolver In this chapter we will write together a `main.go` file that uses the "system" DNS resolver to lookup domain names.
|
-=-=- StartHere -=-=- # Chapter I: Using the "system" DNS resolver In this chapter we will write together a `main.go` file that uses the "system" DNS resolver to lookup domain names. |
netxlite/chapter06
-=-=- StartHere -=-=- # Chapter I: Using a custom UDP resolver In this chapter we will write together a `main.go` file that uses a custom UDP DNS resolver to lookup domain names.
|
-=-=- StartHere -=-=- # Chapter I: Using a custom UDP resolver In this chapter we will write together a `main.go` file that uses a custom UDP DNS resolver to lookup domain names. |
netxlite/chapter07
-=-=- StartHere -=-=- # Chapter I: HTTP GET with TLS conn In this chapter we will write together a `main.go` file that uses netxlite to establish a TLS connection to a remote endpoint and then fetches a webpage from it using GET.
|
-=-=- StartHere -=-=- # Chapter I: HTTP GET with TLS conn In this chapter we will write together a `main.go` file that uses netxlite to establish a TLS connection to a remote endpoint and then fetches a webpage from it using GET. |
netxlite/chapter08
-=-=- StartHere -=-=- # Chapter I: HTTP GET with QUIC sess In this chapter we will write together a `main.go` file that uses netxlite to establish a QUIC session to a remote endpoint and then fetches a webpage from it using GET.
|
-=-=- StartHere -=-=- # Chapter I: HTTP GET with QUIC sess In this chapter we will write together a `main.go` file that uses netxlite to establish a QUIC session to a remote endpoint and then fetches a webpage from it using GET. |
Package version contains version information
|
Package version contains version information |
Click to show internal directories.
Click to hide internal directories.