/Banzai

Multi-threaded lightweight HTTP Server supporting TCP/IPv4 infrastructure through rich Banzai API

Primary LanguageJavaMIT LicenseMIT

GitHub contributors    Forks     Stargazers     Issues     example workflow


Banzai Logo

Banzai Server (A HTTP Server)

A non-blocking, event-driven Http server from scratch, using plain Java. No additional dependencies (Take a look at Built-with section) is needed.
Explore the docs »

Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started

About The Project

Banzai is a light-weight, blazingly fast (when working on local instead of Docker), extendible web server. The server is capable of understanding & responding to HTTP/1.1 (not HTTP/2.0 or HTTPS protocols).

Built With

  • Java

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Prerequisites

Apache Maven should be installed on your system and the JAVA_HOME environment variable should point to JDK home. Look at this to install maven. If you have Docker, you don't need to install Maven or Java.

Installation for Docker

For more detailed instructions, see Installation

Note: do NOT use the maven wrapper commans (mvnw or mvnw.cmd) since there are some problems. I will solve this problem in v1.1.

  1. Clone the repo

    $ git clone https://github.com/egehurturk/Banzai.git
  2. Change permissions of starter bash file:

    $ cd Banzai
    $ chmod 755 run_docker.sh
  3. Run the executable

    $ ./run_docker.sh -d "/path/to/config_file/"

    This will build up a Docker image and run the image. See Docker for more details, or Configuration for details on configuring the server

Installation on Maven

For more detailed instructions, see Installation

  1. Clone the repo

    $ git clone https://github.com/egehurturk/Banzai.git
  2. Change directory to the folder:

    $ cd Banzai
  3. Install the project to local maven repository:

    $ mvn install

    This will enable to use Banzai as a dependency in your pom.xml.

  4. Add the Banzai dependency:

    <dependency>
       <groupId>com.egehurturk</groupId>
       <artifactId>BanzaiServer</artifactId>
       <version>1.0-SNAPSHOT</version>
    </dependency>
  5. Use the API (see Installation - Quickstart and User Guide)

Deployment

Banzai can be deployed in a Docker container. See Docker for more information.

Roadmap

See the open issues for a list of proposed features (and known issues).