Skip to content

Lightweight, Testable HTTP Server in Java (Multithreading, Sockets, Singleton, Jackson - LLD Focus)

License

Notifications You must be signed in to change notification settings

ria-19/HttpServer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lightweight, Testable HTTP Server in Java (LLD Focus)

Purpose:

This project implements a basic HTTP server in Java for learning experience in low-level design (LLD) concepts. It's designed for:

  • Understanding LLD: Gain practical experience with threading, sockets, and other core LLD principles.
  • Testable Code: Write robust and verifiable code using a custom or lightweight testing framework.
  • Configuration Management: Effectively manage configuration data using the Singleton pattern.
  • Data Binding: Utilize Jackson for convenient mapping between POJOs and configuration files.
  • Scalability Potential: Explore code structure considerations for future scalability improvements.

Technologies and Tools:

  • Languages: Java
  • Build Tool (Optional): Maven
  • Concurrency: Multithreading
  • Networking: Sockets
  • Testing Framework: Custom or Lightweight Alternative (e.g., JUnit)
  • Data Binding: Jackson
  • Logging (Optional): SLF4J, Logback (dependencies included)
  • Development Environment (IDE): Any Java IDE (e.g., IntelliJ IDEA, Eclipse)

Description:

This project focuses on hands-on exploration of LLD principles while building a functional HTTP server. It offers a structured environment for learning about:

  • Threading mechanisms for handling concurrent client connections.
  • Low-level network communication using sockets.
  • Importance of writing testable code for verification and reliability.
  • Utilizing the Singleton pattern for managing configuration data.
  • Leveraging Jackson for seamless POJO-to-JSON data binding.

While initial performance may not be optimized, the code is structured with considerations for potential scalability improvements in the future.

This project serves as a valuable starting point for those interested in exploring LLD concepts and building their understanding of HTTP servers.

About

Lightweight, Testable HTTP Server in Java (Multithreading, Sockets, Singleton, Jackson - LLD Focus)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages