Git Product home page Git Product logo

clumzee's Introduction

๐Ÿš€ Clumzee: The Agile HTTP Server

Clumzee is an elegantly designed, lightweight HTTP server crafted in the power of C++. This nimble server efficiently serves static files from any specified directory, with support for GET and POST requests, along with essential error handling mechanisms. The server is flexible, allowing customization through an array of configuration options.

๐ŸŽ Features

  • ๐Ÿ“‚ Efficiently serve static files over HTTP
  • ๐Ÿ”„ Complete support for GET and POST requests
  • ๐Ÿ›ก๏ธ Fundamental error handling for invalid requests
  • ๐Ÿ”ง Configurable server options for tailor-made solutions
  • ๐Ÿšฆ Handle concurrent connections with a manageable limit
  • ๐Ÿ“ Logging of requests and responses for traceability and auditing
  • ๐Ÿž Enable debug mode for real-time observation of file system changes

๐Ÿš€ Getting Started

Ignite your journey with Clumzee by following these steps. Ensure you have the right environment setup before you commence.

Prerequisites

  • ๐Ÿ”ง A C++ compiler that has arms wide open for the C++17 standard.
  • ๐Ÿ–ฅ๏ธ A Linux or macOS operating system. We must reluctantly inform that Windows does not receive official support at the moment.

Step 1: Clone the Repository

Start by cloning the Clumzee repository from GitHub. Open your terminal and run the following commands:

git clone https://github.com/letrad/clumzee.git
cd clumzee

Step 2: Compile Clumzee

Compile the Clumzee server using a C++ compiler:

g++ -std=c++17 -o clumzee main.cpp

Step 3: Run the Server

Now, all set to launch Clumzee! Use the following command to start the server:

./clumzee

By default, the server listens on port 3333 and serves files from the current directory.

Access the server from a web browser: localhost:3333

๐Ÿ”ง Configuration

For now, the server can be configured by modifying the ServerConfig struct in the main function of the main.cpp file. You can change the following settings:

  • rootDirectory: The root directory from which the server serves files.
  • defaultFile: The default file to serve when a directory is requested.
  • virtualHosts: A list of virtual hosts the server responds to.
  • enableLoadBalancing: Enable load balancing between multiple server instances.
  • enableLogging: Enable logging of requests and responses.
  • enableDebug: Enable debug mode for real-time file update tracking.
  • port: The port number on which the server listens for connections.

๐Ÿ“ Contributions

Contributions to the project are welcome. If you find any issues or have suggestions for improvements, please open an issue or submit a pull request.

clumzee's People

Contributors

letrad avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.