Roadmap
The roadmap provides a structured guide for participants to build eXpServer gradually. It outlines the progression of learning objectives, starting from introductory concepts and building up to advanced features and architecture.
Each stage builds upon the previous one, ensuring a systematic approach to the project. Links are provided within the stage documents for additional reference of concepts as and when necessary. There will be two types of links present throughout the documentation:
Important links: Resources under these links are meant to be read before proceeding further with the documentation.
NOTE
The important links will be indicated like this.
Informative links: Resources under these links are for more information about a particular concept. The information may not be necessary at that point and you may proceed with the roadmap without visiting these links.
The eXpServer project comprises 24 stages, organized into 5 phases. Prior to the commencement of each phase, participants receive an overview detailing what to anticipate in that phase and summarizing their progress up to that point.
Stages
✅ Reviewed 🟡 To be reviewed 🟣 Working on it 🔴 Corrections
Phase 0: Introduction to Linux socket programming
- ✅ Overview
- ✅ Stage 0: Setup
- ✅ Stage 1: TCP Server
- ✅ Stage 2: TCP Client
- 🟡 Stage 3: UDP with Multi-threading
- ✅ Stage 4: Linux Epoll
- ✅ Stage 5: TCP Proxy
Phase 1: Building the core of eXpServer by creating reusable modules
- ✅ Overview
- ✅ Stage 6: Listener & Connection Modules
- 🟡 Stage 7: Core & Loop Modules
- 🟡 Stage 8: Non-Blocking Sockets
- 🟡 Stage 9: epoll Edge Triggered
- 🟣 Stage 10: Pipe Module
- Stage 11: Upstream Module
- Stage 12: File Module
- Stage 13: Session Module
Phase 2: Implementing HTTP support
- Overview
- Stage 14: HTTP Request Module
- Stage 15: HTTP Response Module
- Stage 16: Config Module
- Stage 17: HTTP Specification
Phase 3: Adding features to eXpServer
- Overview
- Stage 18: Directory Browsing
- Stage 19: IP Whitelist/Blacklist
- Stage 20: Gzip Compression
- Stage 21: Load Balancing
- Stage 22: Request timeouts