Skip to content
This repository has been archived by the owner on Aug 28, 2019. It is now read-only.

measurement-kit/engine

Repository files navigation

GoDoc Build Status Coverage Status Go Report Card

Measurement Kit engine written in Go

⚠️⚠️⚠️⚠️⚠️⚠️⚠️: This repository is superseded by https://github.com/ooni/probe-engine and will soon be archived and discontinued. Don't depend on it!

This repository contains a Measurement Kit engine written in Go. We currently only implement functionality that it is more practical to directly implement in Go (e.g. the Psiphon nettest). See the design document for a descriptions of the rationale and design of this repository, as well as for a discussion of the relationship between this engine, the main MK engine in C++, and the Measurement Kit Android and iOS APIs.

You can easily integrate this repository into your Go code as usual by adding a

import "github.com/measurement-kit/engine"

statement to your Go code. Note that we require Go >= 1.11 and we use Go modules, so do not checkout this repo in your GOPATH.

You can build an AAR for Android using

./mobile/android/build.bash

which will regenerate the Android specific code and use gomobile to generate bindings and an APK for Android. Make sure you have the Android SDK and NDK installed, that you have run gomobile init, and that you have exported ANDROID_HOME to point to the place in which the Android SDK is installed.

In a similar fashion

./mobile/ios/build.bash

will generate a framework for iOS devices. For this to work, you must be running macOS and have Xcode installed.