• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

src/H01-May-2019-16,87012,740

README.mdH A D01-May-20192.9 KiB12269

README.md

1The `src` directory contains the source code to the command line version of
2Bredbandskollen CLI, a bandwidth measurement tool.
3
4# How to build Bredbandskollen's CLI client
5
6Note: Pre-compiled binaries for the most common platforms can be downloaded from
7
8    http://www.bredbandskollen.se/en/bredbandskollen-cli/
9
10On Windows, open
11
12    src/wincli/wincli.sln
13
14in Visual Studio 2015 or later, then choose "Build".
15
16On all other platforms, change to the directory
17
18    src/cli
19
20and run the command "make" (or "gmake"). GNU Make and a compiler with support
21for C++11 is required, e.g. GCC version 4.7 or later or LLVM Clang version 3.9 or later.
22
23To use a specific compiler, do e.g.
24
25    make CXX=clang++
26
27To enable support for TLS/SSL, install GnuTLS version 3.5 or later, and do
28
29    make clean
30    make GNUTLS=1
31
32To perform a bandwidth measurement using TLS, do
33
34    ./cli --test --ssl
35
36For more information, see "Platform Notes" below.
37
38# How to run the CLI client
39
40To perform a mesurement, simply run the executable program that was built using
41the above steps. For more information, run it with the --help argument or read
42
43   https://frontend.bredbandskollen.se/download/README.txt
44
45# About the source code
46
47The directories framework and http contain a basic C++ network programming
48framework with support for "tasks" and "timers". Some of the features are
49explained by demo programs in the examples directory.
50
51The directory json11 contains a JSON library for C++ provided by Dropbox, Inc.
52
53The directory measurement contains the bandwidth measurement engine, built atop
54the framework.
55
56The directory cli contains a command line interface to the measurement engine.
57
58The directory qt5gui contains the source code for a GUI to the measurement
59engine. To build it, Qt5 and QWebEngine are required. You must run the Qt5
60version of qmake to create a Makefile before running make to build the GUI.
61
62# Platform Notes
63
64* Windows
65
66The code has not been thoroughly tested on Windows. Pull requests are welcome.
67
68Visual Studio 2015 or later is required. Visual Studio 2017 Community can be
69downloaded from https://visualstudio.microsoft.com/
70
71Open src/wincli/wincli.sln in Visual Studio, then select "Build".
72
73* MacOS
74
75Install Xcode from App Store, then go to src/cli and do make.
76For SSL support, install Homebrew from https://brew.sh and then do
77
78    brew install gnutls
79
80Once GnuTLS is installed, go to src/cli and do
81
82    make clean
83    make GNUTLS=1
84
85* Linux
86
87Make sure g++ version 4.7 or later is installed. Then go to src/cli and do
88
89    make
90
91If GnuTLS version 3.5 or later is installed, including development files, do
92
93    make clean
94    make GNUTLS=1
95
96* OpenBSD
97
98Install gmake, llvm and gnutls using pkg_add, then go to src/cli and do
99
100    gmake
101or
102
103    gmake GNUTLS=1
104
105* FreeBSD
106
107Install gmake and gnutls using pkg, then go to src/cli and do
108
109    gmake
110or
111
112    gmake GNUTLS=1
113
114* NetBSD
115
116Install gmake, llvm, clang, and gnutls using pkgin, then go to src/cli and do
117
118    gmake
119or
120
121    gmake GNUTLS=1
122