Skip to content
This repository has been archived by the owner on Mar 4, 2021. It is now read-only.

README.md: improve description #157

Merged
merged 1 commit into from
Sep 2, 2015
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 44 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,50 @@

[![Build Status](https://travis-ci.org/measurement-kit/measurement-kit.svg?branch=master)](https://travis-ci.org/measurement-kit/measurement-kit)

MeasurementKit is an experimental library that provides common functionalities
useful to implement open measurement tools on mobile platforms.
MeasurementKit is a library that implements open measurement methodologies
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would specify we are talking about network measurements.

Perhaps it's also good to clarify that users of the library may be either those that want the results of the measurements to be used in the application logic of some arbitrary piece of software or it may be of interested to researchers or people that have specific network measurement needs.

and targets mobile platforms (Android and iOS). Currently it implements the
following high-level tests:

- [OONI](https://ooni.torproject.org/)'s [DNS Injection](https://github.com/TheTorProject/ooni-spec/blob/master/test-specs/ts-012-dns-injection.md) test

- [OONI](https://ooni.torproject.org/)'s [HTTP Invalid Request Line](https://github.com/TheTorProject/ooni-spec/blob/master/test-specs/ts-007-http-invalid-request-line.md) test

- [OONI](https://ooni.torproject.org/)'s [TCP Connect](https://github.com/TheTorProject/ooni-spec/blob/master/test-specs/ts-008-tcpconnect.md) test

It contains building-block functionalities useful to implement your own
tests. More in detail it currently implements:

- [TCP connection](https://github.com/measurement-kit/measurement-kit/blob/master/include/measurement_kit/net/transport.hpp) (with which you can create a TCP connection towards and
endpoint, receive and send data)

- [DNS client](https://github.com/measurement-kit/measurement-kit/blob/master/include/measurement_kit/dns/dns.hpp) (with which you can resolve and reverse-resolve A and AAAA
records using arbitrary name servers)

- [HTTP client](https://github.com/measurement-kit/measurement-kit/blob/master/include/measurement_kit/http/http.hpp) (with which you can send HTTP/1.1 requests and receive
and parse the corresponding responses)

- [traceroute for Android](https://github.com/measurement-kit/measurement-kit/blob/master/include/measurement_kit/traceroute/android.hpp) (with which you can send individual traceroute
probes with a specified payload and TTL)

Future short-term plans include implementing all possible OONI tests, adding
network performance tests (such as [NDT](https://github.com/ndt-project/ndt)), adding building-blocks functionalities
such as [uTP](https://github.com/bittorrent/libutp), implementing facilities to communitate with the [OONI backend](https://github.com/TheTorProject/ooni-backend),
implementing traceroute for iOS.

To compile MeasurementKit for Android, see:

- the [repository for cross-compiling MeasurementKit for Android](https://github.com/measurement-kit/measurement-kit-build-android)

- the [example application for Android](https://github.com/measurement-kit/measurement-kit-app-android)

To compile and use MeasurementKit for iOS, see:

- the [repository for cross-compiling MeasurementKit for iOS](https://github.com/measurement-kit/measurement-kit-build-ios)

- the [example application for iOS](https://github.com/measurement-kit/measurement-kit-app-ios)

This README.md files continues by explaining you how to compile MeasurementKit
on a UNIX or UNIX-like platform (e.g. Linux, MacOS).

## How to clone the repository

Expand Down