• This repository has been archived on 07/Feb/2023
  • Stars
    star
    171
  • Rank 222,266 (Top 5 %)
  • Language
    C++
  • License
    BSD 3-Clause "New...
  • Created over 10 years ago
  • Updated almost 2 years ago

Reviews

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

Repository Details

Poseidon Server Framework (refactor WIP)

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