
Moteur de mesure et CLI en Go pour détecter la censure d'Internet et les interférences réseau, exécuter les tests réseau OONI et rapporter les résultats à l'observatoire ouvert.
Guide d'utilisation · Documentation de l'API · Signaler un bug · Demander une fonctionnalité · Tutoriels
L'Open Observatory of Network Interference (OONI) est un projet de logiciel libre à but non lucratif qui vise à autonomiser les efforts décentralisés de documentation de la censure d'Internet dans le monde entier.
Ce dépôt contient les paquets Go suivants :
le client en ligne de commande ooniprobe (cmd/ooniprobe) ;
le serveur d'assistance aux tests (internal/cmd/oohelperd) ;
la bibliothèque mobile (pkg/oonimkall) ;
la bibliothèque du moteur de mesure (internal) ;
le client en ligne de commande expérimental miniooni (internal/cmd/miniooni).
Chaque répertoire de premier niveau de ce dépôt contient un fichier README explicatif.
Suivez les instructions sur ooni.org/install/cli
pour installer les binaires précompilés d'ooniprobe pour Windows, macOS et
Debian/Ubuntu. Une fois ooniprobe installé, consultez le
guide d'utilisation.
Nous publions des compilations nocturnes en utilisant l'étiquette de version glissante. Ces
compilations utilisent le dernier commit de la branche master.
Pour configurer le développement de ce dépôt, vous avez besoin de Go >= 1.15. Le
script ./script/go.bash téléchargera automatiquement la version attendue
de Go mentionnée dans le fichier GOVERSION (c'est-à-dire
go1.27.3) et l'utilisera pour la compilation.
Vous pouvez également contourner ./script/go.bash et compiler ooniprobe manuellement avec
go build ... mais, dans ce cas, notez que :
utiliser une version plus ancienne que celle mentionnée dans GOVERSION est absolument déconseillé et pourrait même ne pas compiler ;
utiliser des versions plus récentes devrait fonctionner comme prévu pour les fonctionnalités de base mais des fonctionnalités supplémentaires peuvent être désactivées ou ne pas fonctionner comme prévu.
Voici pourquoi : nous nous appuyons sur des paquets dérivés de la bibliothèque standard ; il est donc plus robuste d'utiliser la même version de Go à partir de laquelle nous avons dérivé ces paquets.
Vous aurez également besoin d'un compilateur C. Sous Linux et les autres systèmes Unix, GCC et Clang fonctionneront tous les deux. Si vous utilisez Windows, nous recommandons d'installer Ubuntu ou Debian sur le sous-système Windows pour Linux. Si vous ciblez Windows, vous devriez également installer le compilateur croisé mingw-w64.
Les commandes suivantes montrent comment configurer un environnement de développement avec Debian 12 (« bookworm »). Les mêmes instructions devraient également fonctionner pour Ubuntu 22.04 LTS.
# install the compilers, git, and the root CA
sudo apt install golang build-essential ca-certificates git
# [optional] install mingw-w64 if you're targeting windows
sudo apt install mingw-w64
Les commandes suivantes montrent comment configurer un environnement de développement avec Fedora, à condition que votre Fedora utilise Go >= 1.15.
# install the compilers and git
sudo dnf install golang make gcc gcc-c++ git
# [optional] install mingw-w64 if you're targeting windows
sudo dnf install mingw64-gcc mingw64-gcc-c++
Les commandes suivantes montrent comment configurer un environnement de développement sous macOS. Nous supposons que vous avez déjà installé Homebrew, qui devrait également installer les outils en ligne de commande Xcode.
Ensuite, vous devez suivre ces instructions :
# install the compiler
brew install go
./script/go.bashLe script ./script/go.bash nécessite Go >= 1.15 et automatise l'installation et
l'utilisation de la bonne version de Go. Exécuter ce script comme suit :
./script/go.bash build -v -ldflags '-s -w' ./internal/cmd/miniooni
Équivaut à exécuter ces commandes :
go install -v golang.org/dl/go1.27.3@latest
$HOME/go/bin/go1.27.3 download
export GOTOOLCHAIN=local
$HOME/sdk/go1.27.3/bin/go build -v -ldflags '-s -w' ./internal/cmd/miniooni
Cette section montre comment compiler avec ./script/go.bash. Si vous souhaitez contourner
l'utilisation de ce script, exécutez simplement go au lieu de ./script/go.bash.
Vous pouvez compiler ooniprobe avec :
./script/go.bash build -v -ldflags '-s -w' ./cmd/ooniprobe
Cette commande générera un binaire stripped appelé ooniprobe
dans le répertoire de premier niveau.
De même, vous pouvez compiler miniooni en utilisant :
./script/go.bash build -v -ldflags '-s -w' ./internal/cmd/miniooni
Cette commande générera un binaire allégé appelé miniooni
dans le répertoire de premier niveau.
Et oohelperd en utilisant :
./script/go.bash build -v -ldflags '-s -w' ./internal/cmd/oohelperd
Cette commande générera un binaire stripped appelé oohelperd
dans le répertoire de premier niveau.