lhmouse / Poseidon
Licence: bsd-3-clause
Poseidon Server Framework (refactor WIP)
Stars: ✭ 162
Projects that are alternatives of or similar to Poseidon
Compose Server Side
Experiment with server side rendering using compose and ktor
Stars: ✭ 131 (-19.14%)
Mutual labels: coroutines, server, websocket
Venice
Coroutines, structured concurrency and CSP for Swift on macOS and Linux.
Stars: ✭ 1,501 (+826.54%)
Mutual labels: coroutines, fibers, server
Zeus
A high performance, cross-platform Internet Communication Engine. Developed with native socket API. Aim at handling millions of concurrent connections.
Stars: ✭ 30 (-81.48%)
Mutual labels: server, epoll
Socketcluster Server
Minimal server module for SocketCluster
Stars: ✭ 70 (-56.79%)
Mutual labels: server, websocket
Fibertaskinglib
A library for enabling task-based multi-threading. It allows execution of task graphs with arbitrary dependencies.
Stars: ✭ 679 (+319.14%)
Mutual labels: coroutines, fibers
Simple Websocket Server
A very simple, fast, multithreaded, platform independent WebSocket (WS) and WebSocket Secure (WSS) server and client library implemented using C++11, Boost.Asio and OpenSSL. Created to be an easy way to make WebSocket endpoints in C++.
Stars: ✭ 685 (+322.84%)
Mutual labels: server, websocket
Gophergameserver
🏆 Feature packed, easy-to-use game server API for Go back-ends and Javascript clients. Tutorials and examples included!
Stars: ✭ 61 (-62.35%)
Mutual labels: server, websocket
Glass Isc Dhcp
Glass - ISC DHCP Server Interface
Stars: ✭ 486 (+200%)
Mutual labels: server, websocket
Mioco
[no longer maintained] Scalable, coroutine-based, fibers/green-threads for Rust. (aka MIO COroutines).
Stars: ✭ 125 (-22.84%)
Mutual labels: coroutines, fibers
Jstp
Fast RPC for browser and Node.js based on TCP, WebSocket, and MDSF
Stars: ✭ 132 (-18.52%)
Mutual labels: server, websocket
Impress
Enterprise application server for Node.js and Metarhia private cloud ⚡
Stars: ✭ 634 (+291.36%)
Mutual labels: server, websocket
Clusterws
💥 Lightweight, fast and powerful framework for building scalable WebSocket applications in Node.js
Stars: ✭ 868 (+435.8%)
Mutual labels: server, websocket
Libfiber
The high performance coroutine library for Linux/FreeBSD/MacOS/Windows, supporting select/poll/epoll/kqueue/iocp/windows GUI
Stars: ✭ 519 (+220.37%)
Mutual labels: coroutines, epoll
Swoole Src
🚀 Coroutine-based concurrency library for PHP
Stars: ✭ 17,175 (+10501.85%)
Mutual labels: coroutines, websocket
Elle
The Elle coroutine-based asynchronous C++ development framework.
Stars: ✭ 459 (+183.33%)
Mutual labels: coroutines, fibers
Boson
A C++14 framework for asynchronous I/O, cooperative multitasking and green threads scheduling
Stars: ✭ 154 (-4.94%)
Mutual labels: coroutines, fibers
Crossbar
Crossbar.io - WAMP application router
Stars: ✭ 1,957 (+1108.02%)
Mutual labels: server, websocket
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
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].