NLSR Authors
===========

NLSR is an open source project includes contributions from the members of the
[NDN project team](http://named-data.net/project/participants/).

## Project co-leads:

* Ashlesh Gawande  <https://www.linkedin.com/in/agawande>
* Nicholas Gordon  <nmgordon@memphis.edu>

## Past project leads:

* A K M Mahmudul Hoque <https://sites.google.com/site/akmhoque/home>
* Vince Lehman <http://vslehman.com>

## Technical advisors:

* Lan Wang            <http://www.cs.memphis.edu/~lanwang/>
* Beichuan Zhang      <http://www.cs.arizona.edu/~bzhang/>
* Lixia Zhang         <http://www.cs.ucla.edu/~lixia/>


## All project authors, contributors and their affiliations:

* The University of Memphis

    * A K M Mahmudul Hoque <https://sites.google.com/site/akmhoque/home>
    * Ashlesh Gawande      <https://www.linkedin.com/in/agawande>
    * Minsheng Zhang       <https://www.linkedin.com/in/minsheng-zhang-032023a1>
    * Syed Obaid Amin      <http://obaidamin.weebly.com/>
    * Vince Lehman         <http://vslehman.com>
    * Muktadir R Chowdhury <mrchwdhr@memphis.edu>
    * Nicholas Gordon      <nmgordon@memphis.edu>
    * Laqin Fan            <lfan1@memphis.edu>
    * Damian Coomes        <dmcoomes@memphis.edu>

* University of California, Los Angeles

    * Yingdi Yu           <http://irl.cs.ucla.edu/~yingdi/web/index.html>
    * Alexander Afanasyev <http://lasr.cs.ucla.edu/afanasyev/index.html>
    * Spyridon Mastorakis <http://cs.ucla.edu/~mastorakis/>
    * Jiewen Tan          <https://www.linkedin.com/in/jiewentan>

* University of Arizona

    * Junxiao Shi         <https://www.linkedin.com/in/shijunxiao>

* University Pierre & Marie Curie, Sorbonne University

    * Davide Pesavento    <https://www.linkedin.com/in/davidepesavento>

## Queries about NLSR

Any question related to NLSR should be directed to Ashlesh Gawande (agawande@memphis.edu),
Muktadir R Chowdhury (mrchwdhr@memphis.edu), and Nicholas Gordon (nmgordon@memphis.edu).
