lhmouse / poseidon-archive

Poseidon Server Framework (refactor WIP)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

The Poseidon Server Framework

GNU nano for the win!

Features

  1. Coroutines (fibers)
  2. Native TCP, TLS over TCP and UDP over either IPv4 or IPv6
  3. I/O multiplexing basing on epoll
  4. Configurable add-ons
  5. Asynchronous MySQL access (optional, WIP)
  6. 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

  1. C++14 is required by Asteria.
  2. Only Linux is supported.
  3. OpenSSL 1.1 is required.

License

BSD 3-Clause License

IRC channel:

ircs://irc.libera.chat:6697/#mcfproj

About

Poseidon Server Framework (refactor WIP)

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:C++ 93.1%Language:Python 3.0%Language:M4 2.0%Language:Shell 1.2%Language:Makefile 0.6%