Apache CouchDB THANKS
=====================

A number of people have contributed to Apache CouchDB by reporting problems,
suggesting improvements or submitting changes. Some of these people are:

 * William Beh <willbeh@gmail.com>
 * Dirk Schalge <dirk@epd-me.net>
 * Roger Leigh <rleigh@debian.org>
 * Sam Ruby <rubys@intertwingly.net>
 * Carlos Valiente <superdupont@gmail.com>
 * Till Klampaeckel <till@klampaeckel.de>
 * Jim Lindley <web@jimlindley.com>
 * Yoan Blanc <yoan.blanc@gmail.com>
 * Michael Gottesman <gottesmm@reed.edu>
 * Mark Baran <mebaran@gmail.com>
 * Michael Hendricks <michael@ndrix.org>
 * Antony Blakey <antony.blakey@gmail.com>
 * Paul Carey <paul.p.carey@gmail.com>
 * Hunter Morris <huntermorris@gmail.com>
 * Brian Palmer <jira@brian.codekitchen.net>
 * Maximillian Dornseif <md@hudora.de>
 * Eric Casteleijn <eric.casteleijn@canonical.com>
 * Maarten Thibaut <mthibaut@cisco.com>
 * Florian Ebeling <florian.ebeling@gmail.com>
 * Volker Mische <volker.mische@gmail.com>
 * Brian Candler <B.Candler@pobox.com>
 * Brad Anderson <brad@sankatygroup.com>
 * Nick Gerakines <nick@gerakines.net>
 * Robert Newson <robert.newson@gmail.com>
 * Bob Dionne <dionne@member.fsf.org>
 * Kevin Ilchmann Jørgensen <kijmail@gmail.com>
 * Dirkjan Ochtman <dirkjan@ochtman.nl>
 * Sebastian Cohnen <sebastian.cohnen@gmx.net>
 * Sven Helmberger <sven.helmberger@gmx.de>
 * Dan Walters <dan@danwalters.net>
 * Curt Arnold <carnold@apache.org>
 * Gustavo Niemeyer
 * Joshua Bronson <jabronson@gmail.com>
 * Kostis Sagonas <kostis@cs.ntua.gr>
 * Matthew Hooker <mwhooker@gmail.com>
 * Filipe Manana <fdmanana@gmail.com>
 * Ilia Cheishvili <ilia.cheishvili@gmail.com>
 * Lena Herrmann <lena@zeromail.org>
 * Jack Moffit <metajack@gmail.com>
 * Damjan Georgievski <gdamjan@gmail.com>
 * Jan Kassens <jan@kassens.net>
 * James Marca <jmarca@translab.its.uci.edu>
 * Matt Goodall <matt.goodall@gmail.com>
 * Joel Clark <unsigned_char@yahoo.com>
 * Matt Lyon <matt@flowerpowered.com>
 * mikeal <mikeal.rogers@gmail.com>
 * Randall Leeds <randall.leeds@gmail.com>
 * Gavin Sherry <swm@alcove.com.au>
 * Timothy Smith <tim@couch.io>
 * Martin Haaß <MartinHaass@gmx.net>
 * Hans Ulrich Niedermann <hun@n-dimensional.de>
 * Jason Smith <jhs@proven-corporation.com>
 * Dmitry Unkovsky <oil.crayons@gmail.com>
 * Zachary Zolton <zachary.zolton@gmail.com>
 * Brian Jenkins <bonkydog@bonkydog.com>
 * Paul Bonser <pib@paulbonser.com>
 * Caleb Land <caleb.land@gmail.com>

For a list of authors see the `AUTHORS` file.
