Portable C++14 network measurement library
Measurement Kit is a library that implements open network measurement methodologies (performance, censorship, etc.) for Android, iOS, Windows, macOS, and Linux systems.
It is meant to be embedded by third party applications with specific network measurement needs and/or to be used by researchers as a basis to implement novel tools.
Please, refer to the include/measurement_kit folder documentation for an up-to-date list of available tests.
API and examples
Generic Unix instructions
You need to have the autotools, a C++14 capable C++ compiler, a C++14 capable C++ library, a C11 capable C compiler, and all the dependencies installed. For current information, we encourage you to read the very simple build script that we use on Travis CI to setup a Unix environment, from which you can gather up-to-date information regarding required packages on a Debian like system. To this end, please refer to the content of the .ci/docker folder.
With all the dependencies statisfied, build with:
./autogen.sh ./configure make sudo make install # optional, if you want to install to `/usr/local` sudo /sbin/ldconfig # required only on Linux if you install
The configure script will also provide advice if a dependency is missing. Also,
./configure --help can be useful.
Please check the measurement-kit/homebrew-measurement-kit tap for Homebrew.
To better understand how to compile using Mingw-w64, it is also useful to look into how we build Measurement Kit on AppVeyor. To this end, we encourage you check the .ci/appveyor folder.
For cross-compiling Measurement Kit for Android, please refer to the measurement-kit/script-build-unix repository. For integrating Measurement Kit cross-compiled for Android with Java classes that you can use from Android, please see measurement-kit/android-libs. For how to use Measurement Kit in an Android project, please see measurement-kit/android-example.
For cross-compiling Measurement Kit for iOS, please refer to the measurement-kit/script-build-unix repository. For integrating Measurement Kit cross-compiled for iOS into a framework that you can use from iOS, please see measurement-kit/ios-libs. For how to use Measurement Kit in an iOS project, please see measurement-kit/ios-example.
How to develop for Measurement Kit
To clone Measurement Kit repository, do:
git clone https://github.com/measurement-kit/measurement-kit
See CONTRIBUTING.md for more information.