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
# For Ubuntu Focal
sudo aptitude install zlib1g-dev lib{edit,pcre2,ssl,magic,mysqlclient,mongoc,http-parser}-dev
# For Debian Buster
sudo aptitude install zlib1g-dev libmariadb-dev-compat lib{edit,pcre2,ssl,magic,mongoc,http-parser}-dev
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.default.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
IRC channel:
ircs://irc.libera.chat:6697/#mcfproj