Chris Pollett > Students >

    ( Print View)



    [C297 Proposal]

    [Deliverable 1]

    [Deliverable 2]

    [Deliverable 3]

    [Deliverable 4]

    [Presentation 1 - PDF]

    [Presentation 2 - PDF]

    [Presentation 3 - PDF]

    [Final Report 297 - PDF]

    [C298 Proposal]

CS297 Proposal

Building Lean, Standalone Web Servers and Routing Engines

Ajita Shrivastava (

Advisor: Dr. Chris Pollett


The objective of this research is to develop single-file, low-dependency, pure PHP servers and routing engines that serve as implementations of SMTP and IMAP protocols, making email communication more straightforward for everyone. The motivation behind this research stems from the desire to simplify email setups, reduce the need for external software, and enable a broader audience to set up their own email servers. In this research, we will create lightweight email servers and routing engines using the simplicity of PHP, designed as a single file so that it can easily be incorporated into other projects. These servers will be minimalistic yet robust, ensuring that they require minimal external dependencies while delivering efficient performance.


Week 1: Sept.1-5Initial discussion; project overview and analysis.
Week 2: Sept.6-12Finalize project topic and all deliverables.
Week 3: Sept.13-19Research topics: smtp, imap, postfix, dovecot, GitHub - atto server
Week 4: Sept.20-26Complete deliverable 1.
Week 5: sept.26-Oct.3Read about HTTP/2 binary format of requests and start deliverable 2.
Week 6: Oct.4-10Read about postfix and dovecot.
Week 7: Oct.11-17Research the existing architecture.
Week 8: Oct.18-24Complete deliverable 2.
Week 9: Oct.25-31Start deliverable 3: brainstorm the new feature to be added.
Week 10: Nov.1-7Complete deliverable 3.
Week 11: Nov.8-14Understand QUIC in depth.
Week 12: Nov.15-21Research on implementation of the QUIC algorithm.
Week 13: Nov.22-28Complete deliverable 4.
Week 14: Nov.29-Dec.5Start working on the project report.
Week 15: Dec.6-12Complete deliverable 5.


The full project will be done when CS298 is completed. The following will be done by the end of CS297:

1. Get latest copy of atto server and implement routes using WebSite.

2. Implement a parser in PHP that converts a given HTTP GET request into HTTP/2 binary format.

3. Research the existing SMTP architecture of atto server and add a new feature.

4. Implement the GET request using QUIC.

5. Project report.


Riabov, Vladimir V. "SMTP (Simple Mail Transfer Protocol)." River College (2005).

Mullet, Dianna, and Kevin Mullet. Managing Imap. " O'Reilly Media, Inc.", 2000.

Gourley, David, and Brian Totty. HTTP: the definitive guide. " O'Reilly Media, Inc.", 2002.

Pollard, Barry. HTTP/2 in Action. Simon and Schuster, 2019.

Belshe, Mike, Roberto Peon, and Martin Thomson. Hypertext transfer protocol version 2 (HTTP/2). No. rfc7540. 2015. RFC manual

Langley, Adam, et al. "The quic transport protocol: Design and internet-scale deployment." Proceedings of the conference of the ACM special interest group on data communication. 2017.

Carlucci, Gaetano, Luca De Cicco, and Saverio Mascolo. "HTTP over UDP: an Experimental Investigation of QUIC." Proceedings of the 30th Annual ACM Symposium on Applied Computing. 2015.

Dent, Kyle D. Postfix: The Definitive Guide: A Secure and Easy-to-Use MTA for UNIX. " O'Reilly Media, Inc.", 2003. Postfix Overview

Hildebrandt, Ralf, and Patrick Koetter. The book of Postfix: state-of-the-art message transport. No Starch Press, 2005.

Dovecot Developer Manual