The Poseidon Server Framework

Features
- Coroutines (fibers)
- Native TCP, TLS over TCP and UDP over either IPv4 or IPv6
- I/O multiplexing basing on epoll
- Configurable add-ons
- Asynchronous MySQL access (optional, WIP)
- Asynchronous MongoDB access (optional, WIP)
How to build
Prerequisite
-
GCC (>= 6)
- autoconf
- automake
- libtool
-
OpenSSL (>= 1.1)
-
cmake (only for building MySQL and MongoDB libraries)
Build and install MySQL and MongoDB client libraries
cd third/
./build_libmysqlclient_deb.sh
./build_libmongoc_deb.sh
cd ..
Build and install Asteria
git submodule update --init
cd asteria/
git checkout master
git pull
autoreconf -i
./configure --disable-static
make -j$(nproc)
./makedeb.sh
cd ..
Build Poseidon
autoreconf -i
./configure --disable-static
make -j$(nproc)
Start Poseidon in build tree
./run.sh
Start Poseidon within GDB
./run.sh gdb --args
Install Poseidon and create default configuration file
./makedeb.sh
sudo cp /usr/local/etc/poseidon/main.template.conf \
/usr/local/etc/poseidon/main.conf
Start installed Poseidon
poseidon /usr/local/etc/poseidon
Notes
-
C++14 is required by Asteria.
- Only Linux is supported.
-
OpenSSL 1.1 is required.
License
BSD 3-Clause License