probe-engine

module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 2, 2019 License: BSD-3-Clause

README

GoDoc Build Status Coverage Status Go Report Card

OONI probe measurement engine

This repository contains OONI probe's measurement engine. That is, the piece of software that implements OONI nettests.

API

You can browse ooni/probe-engine's API online at godoc.org. We currently don't provide any API stability guarantees.

This repository also allows to build miniooni, a small command line client useful to test the functionality in here without integrating with OONI probe. You can browse the manual of this tool online at godoc.org. We currently don't promise that the miniooni CLI will be stable over time.

Integrating ooni/probe-engine

This software uses Go modules and therefore requires Go v1.11+. We also depend on Measurement Kit, a C++14 library implementing many OONI tests.

Note that export CGO_ENABLED=0 will disable C/C++ extensions and therefore will prevent Measurement Kit tests from being linked into the resulting Go binaries. You may want that in some cases, e.g. when you only want to use OONI tests written in Go.

We plan on gradually rewriting all OONI tests in Go, therefore the dependency on Measurement Kit will eventually be removed.

A future version of this document will provide platform specific instruction for installing Measurement Kit and building.

Release procedure

  1. make sure that dependencies are up to date

  2. make sure that resources are up to date

  3. commit, tag, and push

  4. create new release on GitHub

Directories

Path Synopsis
Package bouncer contains a OONI bouncer client implementation.
Package bouncer contains a OONI bouncer client implementation.
cmd
miniooni command
Command miniooni is simple binary for testing purposes.
Command miniooni is simple binary for testing purposes.
Package collector contains a OONI collector client implementation.
Package collector contains a OONI collector client implementation.
Package experiment contains network experiment.
Package experiment contains network experiment.
dash
Package dash contains the dash network experiment.
Package dash contains the dash network experiment.
example
Package example contains a simple example of experiment.
Package example contains a simple example of experiment.
fbmessenger
Package fbmessenger contains the Facebook Messenger network experiment.
Package fbmessenger contains the Facebook Messenger network experiment.
handler
Package handler contains experiment events handler
Package handler contains experiment events handler
hhfm
Package hhfm contains the HTTP Header Field Manipulation network experiment.
Package hhfm contains the HTTP Header Field Manipulation network experiment.
hirl
Package hirl contains the HTTP Invalid Request Line network experiment.
Package hirl contains the HTTP Invalid Request Line network experiment.
mkevent
Package mkevent processes MK events
Package mkevent processes MK events
mkhelper
Package mkhelper contains common code to get the proper helper and configure it into settings.
Package mkhelper contains common code to get the proper helper and configure it into settings.
mkrunner
Package mkrunner contains code to run an MK based test
Package mkrunner contains code to run an MK based test
ndt
Package ndt contains the ndt network experiment.
Package ndt contains the ndt network experiment.
ndt7
Package ndt7 contains the ndt7 network experiment.
Package ndt7 contains the ndt7 network experiment.
psiphon
Package psiphon implements the psiphon network experiment.
Package psiphon implements the psiphon network experiment.
telegram
Package telegram contains the Telegram network experiment.
Package telegram contains the Telegram network experiment.
web_connectivity
Package web_connectivity contains the Web Connectivity network experiment.
Package web_connectivity contains the Web Connectivity network experiment.
whatsapp
Package whatsapp contains the WhatsApp network experiment.
Package whatsapp contains the WhatsApp network experiment.
geoiplookup
iplookup
Package iplookup implements probe IP lookup.
Package iplookup implements probe IP lookup.
iplookup/akamai
Package akamai lookups the IP using akamai.
Package akamai lookups the IP using akamai.
iplookup/avast
Package avast lookups the IP using avast.
Package avast lookups the IP using avast.
iplookup/invalid
Package invalid returns an invalid IP.
Package invalid returns an invalid IP.
iplookup/ubuntu
Package ubuntu lookups the IP using Ubuntu.
Package ubuntu lookups the IP using Ubuntu.
mmdblookup
Package mmdblookup performs probe ASN, CC, NetworkName lookups.
Package mmdblookup performs probe ASN, CC, NetworkName lookups.
resolverlookup
Package resolverlookup discovers the resolver's IP
Package resolverlookup discovers the resolver's IP
Package httpx contains HTTP extensions.
Package httpx contains HTTP extensions.
fetch
Package fetch is used to fetch resources.
Package fetch is used to fetch resources.
httplog
Package httplog implements HTTP event logging.
Package httplog implements HTTP event logging.
httptracex
Package httptracex contains httptrace extensions.
Package httptracex contains httptrace extensions.
jsonapi
Package jsonapi interacts with HTTP JSON APIs.
Package jsonapi interacts with HTTP JSON APIs.
netx
Package netx contains network extensions.
Package netx contains network extensions.
retryx
Package retryx helps to retry operations
Package retryx helps to retry operations
Package log defines the logging interface used in this library.
Package log defines the logging interface used in this library.
Package measurementkit allows to use Measurement Kit.
Package measurementkit allows to use Measurement Kit.
Package model defines shared data structures.
Package model defines shared data structures.
orchestra
testlists
Package testlists queries orchestra's test lists.
Package testlists queries orchestra's test lists.
Package resources contains code to download resources.
Package resources contains code to download resources.
Package session models a measurement session.
Package session models a measurement session.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL