Mini-NDN Authors
================

Mini-NDN is an open source project that includes contributions from the following individuals.

## Mini-NDN contributors and affiliations:

* The University of Memphis

    * Ashlesh Gawande      <https://www.linkedin.com/in/agawande>
    * Vince Lehman         <http://vslehman.com>
    * Yucheng Zhang        <yzhang@memphis.edu>
    * Muktadir R Chowdhury <mrchwdhr@memphis.edu>
    * Nicholas Gordon      <nmgordon@memphis.edu>
    * Lan Wang             <http://www.cs.memphis.edu/~lanwang/>
    * Damian Coomes        <dmcoomes@memphis.edu>
    * Saurab Dulal         <sdulal@memphis.edu>

* The University of Arizona

    * Junxiao Shi    <https://www.linkedin.com/in/shijunxiao>
    * Beichuan Zhang <http://www.cs.arizona.edu/~bzhang/>

* University of California, Los Angeles

    * Alexander Afanasyev <http://lasr.cs.ucla.edu/afanasyev/index.html>
    * Jeff Thompson       <jefft0@remap.ucla.edu>

## The Mini-CCNx team:

* University of Campinas

    * Caio de Moraes Elias
    * Carlos Cabral
    * Christian Esteve Rothenberg
