xref: /libevent-2.1.12/README.md (revision 742bb5f5)
1a2b2e1e6SMark Ellzey<p align="center">
221bfaa70SAzat Khuzhin  <img src="https://strcpy.net/libevent3.png" alt="libevent logo"/>
3a2b2e1e6SMark Ellzey</p>
4a2b2e1e6SMark Ellzey
5a2b2e1e6SMark Ellzey
680faee9fSMark Ellzey
75991f5b2SAzat Khuzhin[![Appveyor Win32 Build Status](https://ci.appveyor.com/api/projects/status/ng3jg0uhy44mp7ik?svg=true)](https://ci.appveyor.com/project/libevent/libevent)
8ad4a897aSMark Ellzey[![Travis Build Status](https://travis-ci.org/libevent/libevent.svg?branch=master)](https://travis-ci.org/libevent/libevent)
99ac000c7SAzat Khuzhin[![Coverage Status](https://coveralls.io/repos/github/libevent/libevent/badge.svg)](https://coveralls.io/github/libevent/libevent)
108886eed4SThe Gitter Badger[![Join the chat at https://gitter.im/libevent/libevent](https://badges.gitter.im/libevent/libevent.svg)](https://gitter.im/libevent/libevent?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
1180faee9fSMark Ellzey
12ad4a897aSMark Ellzey
13ad4a897aSMark Ellzey
14604b8cc4SJoakim Soderberg# 0. BUILDING AND INSTALLATION (Briefly)
15d2bc39afSJoakim Soderberg
16604b8cc4SJoakim Soderberg## Autoconf
17604b8cc4SJoakim Soderberg
18d2bc39afSJoakim Soderberg     $ ./configure
19d2bc39afSJoakim Soderberg     $ make
20d2bc39afSJoakim Soderberg     $ make verify   # (optional)
21d2bc39afSJoakim Soderberg     $ sudo make install
22d2bc39afSJoakim Soderberg
2321bfaa70SAzat Khuzhin## CMake (General)
248b228e27SMark Ellzey
258b228e27SMark Ellzey
2621bfaa70SAzat KhuzhinThe following Libevent specific CMake variables are as follows (the values being
278b228e27SMark Ellzeythe default).
288b228e27SMark Ellzey
298b228e27SMark Ellzey```
30eb10a738SAzat Khuzhin# Type of the library to build (SHARED or STATIC)
31bc7f2fd9SAzat Khuzhin# Default is: SHARED for MSVC, otherwise BOTH
32eb10a738SAzat KhuzhinEVENT__LIBRARY_TYPE:STRING=DEFAULT
33eb10a738SAzat Khuzhin
348b228e27SMark Ellzey# Installation directory for CMake files
358b228e27SMark EllzeyEVENT_INSTALL_CMAKE_DIR:PATH=lib/cmake/libevent
368b228e27SMark Ellzey
378b228e27SMark Ellzey# Enable running gcov to get a test coverage report (only works with
388b228e27SMark Ellzey# GCC/CLang). Make sure to enable -DCMAKE_BUILD_TYPE=Debug as well.
398b228e27SMark EllzeyEVENT__COVERAGE:BOOL=OFF
408b228e27SMark Ellzey
4121bfaa70SAzat Khuzhin# Defines if Libevent should build without the benchmark executables
428b228e27SMark EllzeyEVENT__DISABLE_BENCHMARK:BOOL=OFF
438b228e27SMark Ellzey
4421bfaa70SAzat Khuzhin# Define if Libevent should build without support for a debug mode
458b228e27SMark EllzeyEVENT__DISABLE_DEBUG_MODE:BOOL=OFF
468b228e27SMark Ellzey
4721bfaa70SAzat Khuzhin# Define if Libevent should not allow replacing the mm functions
488b228e27SMark EllzeyEVENT__DISABLE_MM_REPLACEMENT:BOOL=OFF
498b228e27SMark Ellzey
5021bfaa70SAzat Khuzhin# Define if Libevent should build without support for OpenSSL encryption
513821cca1SBreakerEVENT__DISABLE_OPENSSL:BOOL=OFF
528b228e27SMark Ellzey
538b228e27SMark Ellzey# Disable the regress tests
548b228e27SMark EllzeyEVENT__DISABLE_REGRESS:BOOL=OFF
558b228e27SMark Ellzey
568b228e27SMark Ellzey# Disable sample files
578b228e27SMark EllzeyEVENT__DISABLE_SAMPLES:BOOL=OFF
588b228e27SMark Ellzey
598b228e27SMark Ellzey# If tests should be compiled or not
608b228e27SMark EllzeyEVENT__DISABLE_TESTS:BOOL=OFF
618b228e27SMark Ellzey
6221bfaa70SAzat Khuzhin# Define if Libevent should not be compiled with thread support
638b228e27SMark EllzeyEVENT__DISABLE_THREAD_SUPPORT:BOOL=OFF
648b228e27SMark Ellzey
658b228e27SMark Ellzey# Enables verbose debugging
668b228e27SMark EllzeyEVENT__ENABLE_VERBOSE_DEBUG:BOOL=OFF
678b228e27SMark Ellzey
6821bfaa70SAzat Khuzhin# When cross compiling, forces running a test program that verifies that Kqueue
698b228e27SMark Ellzey# works with pipes. Note that this requires you to manually run the test program
7021bfaa70SAzat Khuzhin# on the the cross compilation target to verify that it works. See CMake
718b228e27SMark Ellzey# documentation for try_run for more details
728b228e27SMark EllzeyEVENT__FORCE_KQUEUE_CHECK:BOOL=OFF
738b228e27SMark Ellzey```
748b228e27SMark Ellzey
758b228e27SMark Ellzey__More variables can be found by running `cmake -LAH <sourcedir_path>`__
768b228e27SMark Ellzey
778b228e27SMark Ellzey
78604b8cc4SJoakim Soderberg## CMake (Windows)
79604b8cc4SJoakim Soderberg
8021bfaa70SAzat KhuzhinInstall CMake: <https://www.cmake.org>
81604b8cc4SJoakim Soderberg
828d4cb35dSJoakimSoderberg
83604b8cc4SJoakim Soderberg     $ md build && cd build
84604b8cc4SJoakim Soderberg     $ cmake -G "Visual Studio 10" ..   # Or whatever generator you want to use cmake --help for a list.
85604b8cc4SJoakim Soderberg     $ start libevent.sln
86604b8cc4SJoakim Soderberg
87604b8cc4SJoakim Soderberg## CMake (Unix)
88604b8cc4SJoakim Soderberg
89604b8cc4SJoakim Soderberg     $ mkdir build && cd build
90604b8cc4SJoakim Soderberg     $ cmake ..     # Default to Unix Makefiles.
91604b8cc4SJoakim Soderberg     $ make
92604b8cc4SJoakim Soderberg     $ make verify  # (optional)
938d4cb35dSJoakimSoderberg
94604b8cc4SJoakim Soderberg
95604b8cc4SJoakim Soderberg# 1. BUILDING AND INSTALLATION (In Depth)
96604b8cc4SJoakim Soderberg
97604b8cc4SJoakim Soderberg## Autoconf
98d2bc39afSJoakim Soderberg
9921bfaa70SAzat KhuzhinTo build Libevent, type
100d2bc39afSJoakim Soderberg
101d2bc39afSJoakim Soderberg     $ ./configure && make
102d2bc39afSJoakim Soderberg
1038d4cb35dSJoakimSoderberg
10421bfaa70SAzat Khuzhin (If you got Libevent from the git repository, you will
105d2bc39afSJoakim Soderberg  first need to run the included "autogen.sh" script in order to
106d2bc39afSJoakim Soderberg  generate the configure script.)
107d2bc39afSJoakim Soderberg
108d2bc39afSJoakim SoderbergYou can run the regression tests by running
109d2bc39afSJoakim Soderberg
110d2bc39afSJoakim Soderberg     $ make verify
111d2bc39afSJoakim Soderberg
112d2bc39afSJoakim SoderbergInstall as root via
113d2bc39afSJoakim Soderberg
114604b8cc4SJoakim Soderberg     $ make install
115d2bc39afSJoakim Soderberg
116d2bc39afSJoakim SoderbergBefore reporting any problems, please run the regression tests.
117d2bc39afSJoakim Soderberg
11821bfaa70SAzat KhuzhinTo enable low-level tracing, build the library as:
119d2bc39afSJoakim Soderberg
1208d4cb35dSJoakimSoderberg     $ CFLAGS=-DUSE_DEBUG ./configure [...]
121d2bc39afSJoakim Soderberg
122d2bc39afSJoakim SoderbergStandard configure flags should work.  In particular, see:
123d2bc39afSJoakim Soderberg
12421bfaa70SAzat Khuzhin     --disable-shared          Only build static libraries.
125d2bc39afSJoakim Soderberg     --prefix                  Install all files relative to this directory.
126d2bc39afSJoakim Soderberg
127d2bc39afSJoakim Soderberg
128d2bc39afSJoakim SoderbergThe configure script also supports the following flags:
129d2bc39afSJoakim Soderberg
130d2bc39afSJoakim Soderberg     --enable-gcc-warnings     Enable extra compiler checking with GCC.
131d2bc39afSJoakim Soderberg     --disable-malloc-replacement
132d2bc39afSJoakim Soderberg                               Don't let applications replace our memory
13321bfaa70SAzat Khuzhin                               management functions.
134d2bc39afSJoakim Soderberg     --disable-openssl         Disable support for OpenSSL encryption.
135d2bc39afSJoakim Soderberg     --disable-thread-support  Don't support multithreaded environments.
136d2bc39afSJoakim Soderberg
137604b8cc4SJoakim Soderberg## CMake (Windows)
138604b8cc4SJoakim Soderberg
139d03b5bf0SNick Mathewson(Note that autoconf is currently the most mature and supported build
14021bfaa70SAzat Khuzhinenvironment for Libevent; the CMake instructions here are new and
14121bfaa70SAzat Khuzhinexperimental, though they _should_ be solid.  We hope that CMake will
142d03b5bf0SNick Mathewsonstill be supported in future versions of Libevent, and will try to
143d03b5bf0SNick Mathewsonmake sure that happens.)
144d03b5bf0SNick Mathewson
14521bfaa70SAzat KhuzhinFirst of all install <https://www.cmake.org>.
146604b8cc4SJoakim Soderberg
14721bfaa70SAzat KhuzhinTo build Libevent using Microsoft Visual studio open the "Visual Studio Command prompt" and type:
148604b8cc4SJoakim Soderberg
149604b8cc4SJoakim Soderberg```
150604b8cc4SJoakim Soderberg$ cd <libevent source dir>
1518d4cb35dSJoakimSoderberg$ mkdir build && cd build
152604b8cc4SJoakim Soderberg$ cmake -G "Visual Studio 10" ..   # Or whatever generator you want to use cmake --help for a list.
153604b8cc4SJoakim Soderberg$ start libevent.sln
154604b8cc4SJoakim Soderberg```
155604b8cc4SJoakim Soderberg
1568d4cb35dSJoakimSoderbergIn the above, the ".." refers to the dir containing the Libevent source code.
1578d4cb35dSJoakimSoderbergYou can build multiple versions (with different compile time settings) from the same source tree
1588d4cb35dSJoakimSoderbergby creating other build directories.
159604b8cc4SJoakim Soderberg
1608d4cb35dSJoakimSoderbergIt is highly recommended to build "out of source" when using
1618d4cb35dSJoakimSoderbergCMake instead of "in source" like the normal behaviour of autoconf for this reason.
1628d4cb35dSJoakimSoderberg
1638d4cb35dSJoakimSoderbergThe "NMake Makefiles" CMake generator can be used to build entirely via the command line.
164604b8cc4SJoakim Soderberg
165604b8cc4SJoakim SoderbergTo get a list of settings available for the project you can type:
166604b8cc4SJoakim Soderberg
167604b8cc4SJoakim Soderberg```
168604b8cc4SJoakim Soderberg$ cmake -LH ..
169604b8cc4SJoakim Soderberg```
170604b8cc4SJoakim Soderberg
1718d4cb35dSJoakimSoderberg### GUI
1728d4cb35dSJoakimSoderberg
173604b8cc4SJoakim SoderbergCMake also provides a GUI that lets you specify the source directory and output (binary) directory
174604b8cc4SJoakim Soderbergthat the build should be placed in.
175604b8cc4SJoakim Soderberg
176604b8cc4SJoakim Soderberg# 2. USEFUL LINKS:
177d2bc39afSJoakim Soderberg
178d2bc39afSJoakim SoderbergFor the latest released version of Libevent, see the official website at
1798d4cb35dSJoakimSoderberg<http://libevent.org/> .
180d2bc39afSJoakim Soderberg
181d2bc39afSJoakim SoderbergThere's a pretty good work-in-progress manual up at
182604b8cc4SJoakim Soderberg   <http://www.wangafu.net/~nickm/libevent-book/> .
183d2bc39afSJoakim Soderberg
184d2bc39afSJoakim SoderbergFor the latest development versions of Libevent, access our Git repository
185d2bc39afSJoakim Soderbergvia
186d2bc39afSJoakim Soderberg
187604b8cc4SJoakim Soderberg```
188b8ec70c4SMark Ellzey$ git clone https://github.com/libevent/libevent.git
189604b8cc4SJoakim Soderberg```
190604b8cc4SJoakim Soderberg
191604b8cc4SJoakim SoderbergYou can browse the git repository online at:
1928d4cb35dSJoakimSoderberg
19321bfaa70SAzat Khuzhin<https://github.com/libevent/libevent>
194d2bc39afSJoakim Soderberg
195b8ec70c4SMark EllzeyTo report bugs, issues, or ask for new features:
1968d4cb35dSJoakimSoderberg
197b8ec70c4SMark Ellzey__Patches__: https://github.com/libevent/libevent/pulls
19821bfaa70SAzat Khuzhin> OK, those are not really _patches_. You fork, modify, and hit the "Create Pull Request" button.
19921bfaa70SAzat Khuzhin> You can still submit normal git patches via the mailing list.
200b8ec70c4SMark Ellzey
20121bfaa70SAzat Khuzhin__Bugs, Features [RFC], and Issues__: https://github.com/libevent/libevent/issues
202b8ec70c4SMark Ellzey> Or you can do it via the mailing list.
203d2bc39afSJoakim Soderberg
204d2bc39afSJoakim SoderbergThere's also a libevent-users mailing list for talking about Libevent
2058d4cb35dSJoakimSoderberguse and development:
2068d4cb35dSJoakimSoderberg
2078d4cb35dSJoakimSoderberg<http://archives.seul.org/libevent/users/>
208d2bc39afSJoakim Soderberg
209604b8cc4SJoakim Soderberg# 3. ACKNOWLEDGMENTS
210d2bc39afSJoakim Soderberg
211d2bc39afSJoakim SoderbergThe following people have helped with suggestions, ideas, code or
212d2bc39afSJoakim Soderbergfixing bugs:
213d2bc39afSJoakim Soderberg
2148d4cb35dSJoakimSoderberg * Samy Al Bahra
215e6c6f120SNick Mathewson * Antony Antony
2168d4cb35dSJoakimSoderberg * Jacob Appelbaum
2178d4cb35dSJoakimSoderberg * Arno Bakker
2188d4cb35dSJoakimSoderberg * Weston Andros Adamson
2198d4cb35dSJoakimSoderberg * William Ahern
2208d4cb35dSJoakimSoderberg * Ivan Andropov
2218d4cb35dSJoakimSoderberg * Sergey Avseyev
2228d4cb35dSJoakimSoderberg * Avi Bab
2238d4cb35dSJoakimSoderberg * Joachim Bauch
224e6c6f120SNick Mathewson * Andrey Belobrov
2258d4cb35dSJoakimSoderberg * Gilad Benjamini
2268d4cb35dSJoakimSoderberg * Stas Bekman
2278d4cb35dSJoakimSoderberg * Denis Bilenko
2288d4cb35dSJoakimSoderberg * Julien Blache
2298d4cb35dSJoakimSoderberg * Kevin Bowling
2308d4cb35dSJoakimSoderberg * Tomash Brechko
2318d4cb35dSJoakimSoderberg * Kelly Brock
2328d4cb35dSJoakimSoderberg * Ralph Castain
2338d4cb35dSJoakimSoderberg * Adrian Chadd
2348d4cb35dSJoakimSoderberg * Lawnstein Chan
2358d4cb35dSJoakimSoderberg * Shuo Chen
2368d4cb35dSJoakimSoderberg * Ka-Hing Cheung
2378d4cb35dSJoakimSoderberg * Andrew Cox
2388d4cb35dSJoakimSoderberg * Paul Croome
2398d4cb35dSJoakimSoderberg * George Danchev
2408d4cb35dSJoakimSoderberg * Andrew Danforth
2418d4cb35dSJoakimSoderberg * Ed Day
2428d4cb35dSJoakimSoderberg * Christopher Davis
2438d4cb35dSJoakimSoderberg * Mike Davis
244e6c6f120SNick Mathewson * Frank Denis
2458d4cb35dSJoakimSoderberg * Antony Dovgal
2468d4cb35dSJoakimSoderberg * Mihai Draghicioiu
2478d4cb35dSJoakimSoderberg * Alexander Drozdov
2488d4cb35dSJoakimSoderberg * Mark Ellzey
2498d4cb35dSJoakimSoderberg * Shie Erlich
2508d4cb35dSJoakimSoderberg * Leonid Evdokimov
2518d4cb35dSJoakimSoderberg * Juan Pablo Fernandez
2528d4cb35dSJoakimSoderberg * Christophe Fillot
2538d4cb35dSJoakimSoderberg * Mike Frysinger
2548d4cb35dSJoakimSoderberg * Remi Gacogne
2558d4cb35dSJoakimSoderberg * Artem Germanov
2568d4cb35dSJoakimSoderberg * Alexander von Gernler
257e6c6f120SNick Mathewson * Diego Giagio
2588d4cb35dSJoakimSoderberg * Artur Grabowski
2598d4cb35dSJoakimSoderberg * Diwaker Gupta
260e6c6f120SNick Mathewson * Kuldeep Gupta
2618d4cb35dSJoakimSoderberg * Sebastian Hahn
2628d4cb35dSJoakimSoderberg * Dave Hart
2638d4cb35dSJoakimSoderberg * Greg Hazel
2648d4cb35dSJoakimSoderberg * Nicholas Heath
2658d4cb35dSJoakimSoderberg * Michael Herf
2668d4cb35dSJoakimSoderberg * Savg He
2678d4cb35dSJoakimSoderberg * Mark Heily
2688d4cb35dSJoakimSoderberg * Maxime Henrion
2698d4cb35dSJoakimSoderberg * Michael Herf
2708d4cb35dSJoakimSoderberg * Greg Hewgill
2718d4cb35dSJoakimSoderberg * Andrew Hochhaus
2728d4cb35dSJoakimSoderberg * Aaron Hopkins
2738d4cb35dSJoakimSoderberg * Tani Hosokawa
2748d4cb35dSJoakimSoderberg * Jamie Iles
2758d4cb35dSJoakimSoderberg * Xiuqiang Jiang
2768d4cb35dSJoakimSoderberg * Claudio Jeker
2778d4cb35dSJoakimSoderberg * Evan Jones
278e6c6f120SNick Mathewson * Marcin Juszkiewicz
2798d4cb35dSJoakimSoderberg * George Kadianakis
280e6c6f120SNick Mathewson * Makoto Kato
2818d4cb35dSJoakimSoderberg * Phua Keat
2828d4cb35dSJoakimSoderberg * Azat Khuzhin
2838d4cb35dSJoakimSoderberg * Alexander Klauer
2848d4cb35dSJoakimSoderberg * Kevin Ko
2858d4cb35dSJoakimSoderberg * Brian Koehmstedt
2868d4cb35dSJoakimSoderberg * Marko Kreen
287e6c6f120SNick Mathewson * Ondřej Kuzník
2888d4cb35dSJoakimSoderberg * Valery Kyholodov
2898d4cb35dSJoakimSoderberg * Ross Lagerwall
2908d4cb35dSJoakimSoderberg * Scott Lamb
2918d4cb35dSJoakimSoderberg * Christopher Layne
2928d4cb35dSJoakimSoderberg * Adam Langley
2938d4cb35dSJoakimSoderberg * Graham Leggett
2948d4cb35dSJoakimSoderberg * Volker Lendecke
2958d4cb35dSJoakimSoderberg * Philip Lewis
2968d4cb35dSJoakimSoderberg * Zhou Li
2978d4cb35dSJoakimSoderberg * David Libenzi
2988d4cb35dSJoakimSoderberg * Yan Lin
2998d4cb35dSJoakimSoderberg * Moshe Litvin
3008d4cb35dSJoakimSoderberg * Simon Liu
3018d4cb35dSJoakimSoderberg * Mitchell Livingston
3028d4cb35dSJoakimSoderberg * Hagne Mahre
3038d4cb35dSJoakimSoderberg * Lubomir Marinov
3048d4cb35dSJoakimSoderberg * Abilio Marques
305e6c6f120SNick Mathewson * Nicolas Martyanoff
3068d4cb35dSJoakimSoderberg * Abel Mathew
3078d4cb35dSJoakimSoderberg * Nick Mathewson
3088d4cb35dSJoakimSoderberg * James Mansion
3098d4cb35dSJoakimSoderberg * Nicholas Marriott
3108d4cb35dSJoakimSoderberg * Andrey Matveev
3118d4cb35dSJoakimSoderberg * Caitlin Mercer
3128d4cb35dSJoakimSoderberg * Dagobert Michelsen
3138d4cb35dSJoakimSoderberg * Andrea Montefusco
3148d4cb35dSJoakimSoderberg * Mansour Moufid
3158d4cb35dSJoakimSoderberg * Mina Naguib
3168d4cb35dSJoakimSoderberg * Felix Nawothnig
3178d4cb35dSJoakimSoderberg * Trond Norbye
3188d4cb35dSJoakimSoderberg * Linus Nordberg
3198d4cb35dSJoakimSoderberg * Richard Nyberg
3208d4cb35dSJoakimSoderberg * Jon Oberheide
321e6c6f120SNick Mathewson * John Ohl
3228d4cb35dSJoakimSoderberg * Phil Oleson
323e6c6f120SNick Mathewson * Alexey Ozeritsky
3248d4cb35dSJoakimSoderberg * Dave Pacheco
3258d4cb35dSJoakimSoderberg * Derrick Pallas
3268d4cb35dSJoakimSoderberg * Tassilo von Parseval
3278d4cb35dSJoakimSoderberg * Catalin Patulea
3288d4cb35dSJoakimSoderberg * Patrick Pelletier
3298d4cb35dSJoakimSoderberg * Simon Perreault
3308d4cb35dSJoakimSoderberg * Dan Petro
3318d4cb35dSJoakimSoderberg * Pierre Phaneuf
3328d4cb35dSJoakimSoderberg * Amarin Phaosawasdi
3338d4cb35dSJoakimSoderberg * Ryan Phillips
3348d4cb35dSJoakimSoderberg * Dimitre Piskyulev
3358d4cb35dSJoakimSoderberg * Pavel Plesov
3368d4cb35dSJoakimSoderberg * Jon Poland
3378d4cb35dSJoakimSoderberg * Roman Puls
3388d4cb35dSJoakimSoderberg * Nate R
3398d4cb35dSJoakimSoderberg * Robert Ransom
340e6c6f120SNick Mathewson * Balint Reczey
3418d4cb35dSJoakimSoderberg * Bert JW Regeer
3428d4cb35dSJoakimSoderberg * Nate Rosenblum
3438d4cb35dSJoakimSoderberg * Peter Rosin
3448d4cb35dSJoakimSoderberg * Maseeb Abdul Qadir
3458d4cb35dSJoakimSoderberg * Wang Qin
3468d4cb35dSJoakimSoderberg * Alex S
3478d4cb35dSJoakimSoderberg * Gyepi Sam
3488d4cb35dSJoakimSoderberg * Hanna Schroeter
3498d4cb35dSJoakimSoderberg * Ralf Schmitt
3508d4cb35dSJoakimSoderberg * Mike Smellie
3518d4cb35dSJoakimSoderberg * Steve Snyder
352e6c6f120SNick Mathewson * Nir Soffer
3538d4cb35dSJoakimSoderberg * Dug Song
3548d4cb35dSJoakimSoderberg * Dongsheng Song
3558d4cb35dSJoakimSoderberg * Hannes Sowa
3568d4cb35dSJoakimSoderberg * Joakim Soderberg
357e6c6f120SNick Mathewson * Joseph Spadavecchia
358e6c6f120SNick Mathewson * Kevin Springborn
359e6c6f120SNick Mathewson * Harlan Stenn
360e6c6f120SNick Mathewson * Andrew Sweeney
3618d4cb35dSJoakimSoderberg * Ferenc Szalai
3628d4cb35dSJoakimSoderberg * Brodie Thiesfield
3638d4cb35dSJoakimSoderberg * Jason Toffaletti
364e6c6f120SNick Mathewson * Brian Utterback
3658d4cb35dSJoakimSoderberg * Gisle Vanem
3668d4cb35dSJoakimSoderberg * Bas Verhoeven
3678d4cb35dSJoakimSoderberg * Constantine Verutin
3688d4cb35dSJoakimSoderberg * Colin Watt
3698d4cb35dSJoakimSoderberg * Zack Weinberg
3708d4cb35dSJoakimSoderberg * Jardel Weyrich
3718d4cb35dSJoakimSoderberg * Jay R. Wren
3728d4cb35dSJoakimSoderberg * Zack Weinberg
373e6c6f120SNick Mathewson * Mobai Zhang
3748d4cb35dSJoakimSoderberg * Alejo
3758d4cb35dSJoakimSoderberg * Alex
3768d4cb35dSJoakimSoderberg * Taral
3778d4cb35dSJoakimSoderberg * propanbutan
378e6c6f120SNick Mathewson * masksqwe
3798d4cb35dSJoakimSoderberg * mmadia
3808d4cb35dSJoakimSoderberg * yangacer
3813298c254SAzat Khuzhin * Andrey Skriabin
3823298c254SAzat Khuzhin * basavesh.as
3833298c254SAzat Khuzhin * billsegall
3843298c254SAzat Khuzhin * Bill Vaughan
3853298c254SAzat Khuzhin * Christopher Wiley
3863298c254SAzat Khuzhin * David Paschich
3873298c254SAzat Khuzhin * Ed Schouten
3883298c254SAzat Khuzhin * Eduardo Panisset
3893298c254SAzat Khuzhin * Jan Heylen
3903298c254SAzat Khuzhin * jer-gentoo
3913298c254SAzat Khuzhin * Joakim Söderberg
3923298c254SAzat Khuzhin * kirillDanshin
3933298c254SAzat Khuzhin * lzmths
3943298c254SAzat Khuzhin * Marcus Sundberg
3953298c254SAzat Khuzhin * Mark Mentovai
3963298c254SAzat Khuzhin * Mattes D
3973298c254SAzat Khuzhin * Matyas Dolak
3983298c254SAzat Khuzhin * Neeraj Badlani
3993298c254SAzat Khuzhin * Nick Mathewson
4003298c254SAzat Khuzhin * Rainer Keller
4013298c254SAzat Khuzhin * Seungmo Koo
4023298c254SAzat Khuzhin * Thomas Bernard
4033298c254SAzat Khuzhin * Xiao Bao Clark
4043298c254SAzat Khuzhin * zeliard
4053298c254SAzat Khuzhin * Zonr Chang
4065904dd53SAzat Khuzhin * Kurt Roeckx
4075904dd53SAzat Khuzhin * Seven
4085904dd53SAzat Khuzhin * Simone Basso
4095904dd53SAzat Khuzhin * Vlad Shcherban
4105904dd53SAzat Khuzhin * Tim Hentenaar
41150824ae2SAzat Khuzhin * Breaker
41250824ae2SAzat Khuzhin * johnsonlee
41350824ae2SAzat Khuzhin * Philip Prindeville
41450824ae2SAzat Khuzhin * Vis Virial
4159e0a1e06SAzat Khuzhin * Andreas Gustafsson
4169e0a1e06SAzat Khuzhin * Andrey Okoshkin
4179e0a1e06SAzat Khuzhin * an-tao
4189e0a1e06SAzat Khuzhin * baixiangcpp
4199e0a1e06SAzat Khuzhin * Bernard Spil
4209e0a1e06SAzat Khuzhin * Bogdan Harjoc
4219e0a1e06SAzat Khuzhin * Carlo Marcelo Arenas Belón
4229e0a1e06SAzat Khuzhin * David Benjamin
4239e0a1e06SAzat Khuzhin * David Disseldorp
4249e0a1e06SAzat Khuzhin * Dmitry Alimov
4259e0a1e06SAzat Khuzhin * Dominic Chen
4269e0a1e06SAzat Khuzhin * dpayne
4279e0a1e06SAzat Khuzhin * ejurgensen
4289e0a1e06SAzat Khuzhin * Fredrik Strupe
4299e0a1e06SAzat Khuzhin * Gonçalo Ribeiro
4309e0a1e06SAzat Khuzhin * James Synge
4319e0a1e06SAzat Khuzhin * Jan Beich
4329e0a1e06SAzat Khuzhin * Jesse Fang
4339e0a1e06SAzat Khuzhin * Jiri Luznicky
4349e0a1e06SAzat Khuzhin * José Luis Millán
4359e0a1e06SAzat Khuzhin * Kiyoshi Aman
4369e0a1e06SAzat Khuzhin * Leo Zhang
4379e0a1e06SAzat Khuzhin * lightningkay
4389e0a1e06SAzat Khuzhin * Luke Dashjr
4399e0a1e06SAzat Khuzhin * Marcin Szewczyk
4409e0a1e06SAzat Khuzhin * Maximilian Brunner
4419e0a1e06SAzat Khuzhin * Maya Rashish
4429e0a1e06SAzat Khuzhin * Murat Demirten
4439e0a1e06SAzat Khuzhin * Nathan French
4449e0a1e06SAzat Khuzhin * Nikolay Edigaryev
4459e0a1e06SAzat Khuzhin * Philip Herron
4469e0a1e06SAzat Khuzhin * Redfoxmoon
4479e0a1e06SAzat Khuzhin * stenn
4489e0a1e06SAzat Khuzhin * SuckShit
4499e0a1e06SAzat Khuzhin * The Gitter Badger
4509e0a1e06SAzat Khuzhin * tim-le
4519e0a1e06SAzat Khuzhin * Vincent JARDIN
4529e0a1e06SAzat Khuzhin * Xiang Zhang
4539e0a1e06SAzat Khuzhin * Xiaozhou Liu
4549e0a1e06SAzat Khuzhin * yongqing.jiao
4558a24ff20SAzat Khuzhin * Enji Cooper
4568a24ff20SAzat Khuzhin * linxiaohui
4578a24ff20SAzat Khuzhin * Seong-Joong Kim
4588a24ff20SAzat Khuzhin * Tobias Stoeckmann
4598a24ff20SAzat Khuzhin * Yury Korzhetsky
4608a24ff20SAzat Khuzhin * zhuizhuhaomeng
4618a24ff20SAzat Khuzhin * Pierce Lopez
462b9c364e4SAzat Khuzhin * yuangongji
463b9c364e4SAzat Khuzhin * Keith Smiley
464b9c364e4SAzat Khuzhin * jeremyerb
465b9c364e4SAzat Khuzhin * Fabrice Fontaine
466b9c364e4SAzat Khuzhin * wenyg
467*742bb5f5SAzat Khuzhin * Aleksandr-Melnikov
468*742bb5f5SAzat Khuzhin * ayuseleznev
469*742bb5f5SAzat Khuzhin * chenguolong
470*742bb5f5SAzat Khuzhin * Dimo Markov
471*742bb5f5SAzat Khuzhin * dota17
472*742bb5f5SAzat Khuzhin * fanquake
473*742bb5f5SAzat Khuzhin * Jan Kasiak
474*742bb5f5SAzat Khuzhin * Kamil Rytarowski
475*742bb5f5SAzat Khuzhin * Mario Emmenlauer
476*742bb5f5SAzat Khuzhin * Michael Davidsaver
477*742bb5f5SAzat Khuzhin * mohuang
478*742bb5f5SAzat Khuzhin * Nick Grifka
479*742bb5f5SAzat Khuzhin * Nicolas J. Bouliane
480*742bb5f5SAzat Khuzhin * Paul Osborne
481*742bb5f5SAzat Khuzhin * Philip Homburg
482*742bb5f5SAzat Khuzhin * Wataru Ashihara
483*742bb5f5SAzat Khuzhin * William A Rowe Jr
484*742bb5f5SAzat Khuzhin * yangyongsheng
485b9c364e4SAzat Khuzhin
486d2bc39afSJoakim Soderberg
487d2bc39afSJoakim SoderbergIf we have forgotten your name, please contact us.
488