diff --git a/README.md b/README.md index ab2efdd..a5e27ce 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,57 @@ -# playground-rs +# Playground RS +A simple multi-threaded web server implementation in Rust. This project demonstrates the implementation of a basic HTTP server with a thread pool for handling concurrent connections. + +## Features + +- Multi-threaded web server implementation +- Custom thread pool for handling concurrent connections +- Basic HTTP response handling +- Graceful shutdown mechanism + +## Project Structure + +- `src/main.rs` - Entry point of the application +- `src/server.rs` - Web server implementation +- `src/thread_pool.rs` - Custom thread pool implementation + +## Requirements + +- Rust 2024 edition +- Cargo (Rust's package manager) + +## Running the Project + +1. Clone the repository: +```bash +git clone +cd playground-rs +``` + +2. Build and run the project: +```bash +cargo run +``` + +The server will start on `127.0.0.1:7878`. You can test it by opening a web browser and navigating to `http://127.0.0.1:7878` or using curl: + +```bash +curl http://127.0.0.1:7878 +``` + +## Implementation Details + +### Thread Pool + +The project implements a custom thread pool that: +- Creates a fixed number of worker threads +- Uses message passing for job distribution +- Handles graceful shutdown +- Manages thread lifecycle + +### Web Server + +The web server: +- Listens on localhost port 7878 +- Uses the thread pool to handle incoming connections +- Responds with a simple "Hello, world!" message