• Stars
    star
    111
  • Rank 314,510 (Top 7 %)
  • Language
    C++
  • License
    MIT License
  • Created almost 15 years ago
  • Updated about 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Xzero HTTP Application Server

Xzero HTTP Application Web Server

x0d is a thin low-latency and scalable HTTP web server built on-top of the Xzero C++ HTTP Framework.

It supports a very expressive and natural configuration via the Flow configuration language and a number of standard plugins to become your web application server.

Features

  • Customizable Error Pages
  • Automatic Directory Indexing
  • on-the-fly executable upgrade with gracefully finishing currently active requests.
  • Easily Extensible via the Powerful Plugin System
  • SSL connection encryption
    • SSL Server Name Indication (SNI) extension
  • Dynamic Content Compression
  • Advanced Dynamic Load Balancer
    • Supporting different backend transports (TCP/IP, and UNIX Domain Sockets).
    • Supporting different backend protocols (HTTP and FastCGI)
    • Advanced Health Monitoring
    • JSON API for retrieving state, stats, and reconfiguring clusters (including adding/updating/removing backends).
    • Client Side Routing support
    • Sticky Offline Mode
    • X-Sendfile support, full static file transmission acceleration
    • HAproxy compatible CSV output
    • Object Cache
      • fully runtime configurable
      • client-cache aware
      • life JSON stats
      • supports serving stale objects when no backend is available
      • Vary response-header Support.
      • multiple update strategies (locked, shadowed)
  • Basic Authentication
    • including PAM authentication
  • Request Path Aliasing
  • Automatic Directory Listing
  • Apache-style access logging
  • User-directory Support
  • Browser Match Support
  • Customizable Expires & Cache-Control Response Header Control
  • instant mode (configuration-less basic HTTP serving)
  • CGI/1.1 Support

Installation Requirements

  • latest stable CLANG (4.0) or a comparible GCC
  • automake / autoconf (for building only)
  • zlib (optional & recommended, for compression)
  • OpenSSL (optional & recommended, for SSL/TLS encryption)

Building from Source on Ubuntu 17.04:

# Installs required dependencies
sudo apt-get install make autoconf automake libtool gcc-4.8 g++-4.8 \
    libmysqlclient-dev zlib1g-dev libbz2-dev pkg-config libssl-dev \
    libfcgi-dev libgoogle-perftools-dev libpam-dev git

# Install git and clone repository
git clone git://github.com/christianparpart/x0.git && cd x0

# Now bootstrap the build (in a sandbox directory)
mkdir -p build && cd build && ../autogen.sh
../configure # <-- your custom configure-flags here

# Now compiling should just work.
make && sudo make install

# Run web server on port 8080
./x0d --instant=`pwd`/www/htdocs,8080

# or try its CLI help
./x0d -h

# have fun hacking and don't forget to checkout the just installed man pages ;-)

LICENSE

Copyright (c) 2009-2018 Christian Parpart <[email protected]>

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

More Repositories

1

dotfiles

my personal dotfiles (public version)
Vim Script
33
star
2

solidity-language-client-vscode

WORK IN PROGRESS - researching on how to do LSP clients for VS code.
TypeScript
31
star
3

klex

C++17 (CLI/embeddable) Lexical Scanner Generator
C++
17
star
4

jquery-noty-rails

jquery noty plugin integrated into the Rails Asset Pipeline
Ruby
9
star
5

linear_algebra

C++ linear algebra implementation (implementing C++ proposal P1385R5)
C++
7
star
6

supervisor

supervisor - process supervising tool
C++
7
star
7

learncpp-by-implementing-calculators

Learn C++ by implementing calculators.
C++
7
star
8

desaster

Desaster Job Queueing Manager
C++
6
star
9

actor-model

C++17 Actor Model header-only library
C++
5
star
10

libxzero

Xzero Libraries
C++
4
star
11

jquery-minicolors-rails

jQuery miniColors plugin integrated into the Rails asset pipeline.
Ruby
4
star
12

kafkaping

Kafka Producer/Consumer latency lag monitor
C++
4
star
13

errors

C++ header-only error message library
C++
3
star
14

assembler-lsp

C++
3
star
15

calc-demo

Twitch live-hacked C++ math expression calculator
C++
3
star
16

nvim-config

EXPERIMENTAL nvim config (in LUA?)
Lua
3
star
17

compose

Functional Programming in C++14
C++
3
star
18

cmath

C++ Mathematics Libary & CLI
C++
3
star
19

openstack-overlay

OpenStack Package Development Overlay
3
star
20

flow

Flow Control Language, Compiler, and Virtual Machine
C++
3
star
21

varnishpurged

small c++ app to purge items from varnish quickly
C++
2
star
22

mesos-test-framework

My C++ Test Application Framework for Mesos
C++
2
star
23

dim

C++ mathematics library for linear algebra, symbolic algebra
C++
1
star
24

math-bits

some random math fun throw-away C++ programs
C++
1
star
25

dotfiles-fish

Shell
1
star
26

primcalc

Primitive Calculator
C++
1
star
27

musicality

playground project to understand music
C++
1
star
28

hello-todo

A small TODO list demo program (on the command line), live coded on Twitch.
C++
1
star
29

Atemi

customizable World of Warcraft AddOn for watching enemy cooldowns
Lua
1
star
30

Fetisch

F# Mathematics Library
F#
1
star
31

old_flow

Flow - Flow-Control Virtual Mashine
C++
1
star
32

openstack-scripts

openstack scripts
Shell
1
star
33

libcaptury

OpenGL/X11 video capturing framework
C++
1
star
34

website-playground

relearning frontend development, again.
JavaScript
1
star
35

puppet-openstack-recipes

Puppet OpenStack Recipes
Puppet
1
star
36

go-marathon

Go (Golang) Mesos Marathon Client API
Go
1
star
37

captury

OpenGL/X11 video capturing client
C++
1
star
38

NActivityTracker

F#
1
star
39

christianparpart.github.com

Ruby
1
star
40

jvmtoy

JVM toy & research project
C++
1
star
41

kollekt-cplusplus

collect sesions ("buckets") from a stream of data, C++ version
C
1
star
42

munin-openstack-plugins

Set of plugins to visualize OpenStack Resource Usage via Munin
1
star
43

capseo

ARCHIVE: my old encoding/decoding library I used for recording screen data.
C++
1
star
44

mymesos

A local Mesos/Marathon installation for development and testing
Shell
1
star