Netrunner is an educational project that demonstrates how to build an HTTP server from scratch using Go. This series covers everything from basic TCP connections to a fully functional HTTP/HTTPS server with advanced features.
If you liked it please make sure to star the repository and follow me for more such walkthroughs!!!!
-
Part 0: Foundations and Prerequisites
- Setting up the Go environment
- Introduction to TCP/IP and HTTP basics
-
Part 1: TCP Foundations
- Implementing a basic TCP server
- Handling connections
-
Part 2: HTTP Basics - Parsing Requests
- Understanding HTTP request structure
- Implementing request parsing
-
Part 3: HTTP Responses and Status Codes
- Creating HTTP responses
- Implementing status codes
-
Part 4: HTTP Methods and Routing
- Implementing GET and POST methods
- Creating a basic routing system
-
Part 5: Middleware and Static File Serving
- Implementing middleware functionality
- Adding support for serving static files
-
Part 6: Performance Optimization and Error Handling
- Implementing connection pooling
- Enhancing error handling
-
Part 7: Implementing HTTPS
- Understanding HTTPS and TLS
- Adding HTTPS support to the server
To run this project:
-
Clone the repository:
git clone https://github.com/yourusername/netrunner.git
-
Navigate to the project directory:
cd netrunner
-
Run the server:
go build -o netrunner cmd/server/main.go ./netrunner
- HTTP and HTTPS support
- Custom routing with path parameters
- Middleware support
- Static file serving
- JSON request/response handling
- Connection pooling
- Rate limiting
- CORS support
- Graceful shutdown
Contributions to Netrunner are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
Minami Sato
- Twitter: @minamisatokun
- Blog: Minami's Blog
- Substack: Minami Sato's Substack
- Thanks to all the readers and contributors who followed along with this series.
- Special thanks to the Go community for their excellent documentation and resources.