ooni-probe-cli/internal
Simone Basso 399d2f65da
feat(measurex): refactored measurement library (#528)
This commit introduce a measurement library that consists of
refactored code from earlier websteps experiments.

I am not going to add tests for the time being, because this library
is still a bit in flux, as we finalize websteps.

I will soon though commit documentation explaining in detail how
to use it, which currrently is at https://github.com/ooni/probe-cli/pull/506
and adds a new directory to internal/tutorial.

The core idea of this measurement library is to allow two
measurement modes:

1. tracing, which is what we're currently doing now, and the
tutorial shows how we can rewrite the measurement part of web
connectivity with measurex using less code. Under a tracing
approach, we construct a normal http.Client that however has
tracing configured, we gather events for resolve, connect, TLS
handshake, QUIC handshake, HTTP round trip, etc. and then we
try to make sense of what happened from the events stream;

2. step-by-step, which is what websteps does, and basically
means that after each operation you immediately write into
a Measurement structure its results and immediately draw the
conclusions on what seems odd (which later may become an
anomaly if we see what the test helper measured).

This library is also such that it produces a data format
compatible with the current OONI spec.

This work is part of https://github.com/ooni/probe/issues/1733.
2021-09-30 01:24:08 +02:00
..
atomicx doc: cleanup and improve for recently moved pkgs (#354) 2021-06-04 11:39:00 +02:00
bytecounter refactor(netxlite): hide details without breaking the rest of the tree (#454) 2021-09-05 14:49:38 +02:00
cmd feat(engine): allow runner to return many measurements (#527) 2021-09-30 00:54:52 +02:00
engine feat(engine): allow runner to return many measurements (#527) 2021-09-30 00:54:52 +02:00
fsx refactor: merge dnsx and errorsx into netxlite (#517) 2021-09-28 12:42:01 +02:00
humanize fix(all): introduce and use iox.CopyContext (#380) 2021-06-15 13:44:28 +02:00
kvstore doc: cleanup and improve for recently moved pkgs (#354) 2021-06-04 11:39:00 +02:00
measurex feat(measurex): refactored measurement library (#528) 2021-09-30 01:24:08 +02:00
mlablocate refactor: merge dnsx and errorsx into netxlite (#517) 2021-09-28 12:42:01 +02:00
mlablocatev2 refactor: merge dnsx and errorsx into netxlite (#517) 2021-09-28 12:42:01 +02:00
multierror doc: cleanup and improve for recently moved pkgs (#354) 2021-06-04 11:39:00 +02:00
netxlite fix(netxlite): make test less flaky on macOS (#526) 2021-09-30 00:25:05 +02:00
ooapi fix(ooapi): disable tests we're not using (#525) 2021-09-30 00:04:11 +02:00
platform fix(internal/platform): support freebsd (#445) 2021-08-20 14:00:06 +02:00
ptx refactor: merge dnsx and errorsx into netxlite (#517) 2021-09-28 12:42:01 +02:00
randx doc: improve and reference existing bug in the code (#356) 2021-06-04 12:50:23 +02:00
runtimex feat: run ~always netxlite integration tests (#522) 2021-09-29 16:04:26 +02:00
scrubber refactor: move scrubbingLogger to the scrubber pkg (#394) 2021-06-22 14:43:58 +02:00
shellx cleanup(shellx): do not directly depend on apex/log (#357) 2021-06-04 14:02:18 +02:00
tunnel cleanup(all): stop using deprecated ioutil functions (#381) 2021-06-15 14:01:45 +02:00
tutorial doc(netxlite): revamp the documentation (#523) 2021-09-29 20:21:25 +02:00
version chore: we are now at 3.11.0-alpha (#361) 2021-06-08 10:08:13 +02:00
README.md doc(netxlite): revamp the documentation (#523) 2021-09-29 20:21:25 +02:00

Directory github.com/ooni/probe-cli/internal

This directory contains private Go packages.

As a reminder, you can always check the Go documentation of a package by using

go doc -all ./internal/$package

where $package is the name of the package.

Some notable packages:

  • netxlite is the underlying networking library;

  • tutorial contains tutorials on writing new experiments, using measurements libraries, and networking code.