C++ https libraries: Difference between revisions
No edit summary |
No edit summary |
||
(6 intermediate revisions by the same user not shown) | |||
Line 44: | Line 44: | ||
</tr> | </tr> | ||
<tr style="height: 48px;"> | <tr style="height: 48px;"> | ||
<td style="height: 48px;">Simple-Web-Server</td> | <td style="height: 48px;">[[Simple-Web-Server]]</td> | ||
<td style="height: 48px;"></td> | <td style="height: 48px;"></td> | ||
<td style="height: 48px;"></td> | <td style="height: 48px;"></td> | ||
Line 80: | Line 80: | ||
</tr> | </tr> | ||
<tr style="height: 24px;"> | <tr style="height: 24px;"> | ||
<td style="height: 24px;"> | <td style="height: 24px;">[http://www.gnu.org/software/libmicrohttpd/ libmicrohttpd]</td> | ||
<td style="height: 24px;"></td> | <td style="height: 24px;"></td> | ||
<td style="height: 24px;"></td> | <td style="height: 24px;"></td> | ||
Line 87: | Line 87: | ||
<td style="height: 24px;"></td> | <td style="height: 24px;"></td> | ||
<td style="height: 24px;">GNU c lib, not sure it supports modern algos, check score...</td> | <td style="height: 24px;">GNU c lib, not sure it supports modern algos, check score...</td> | ||
</tr> | |||
<tr style="height: 24px;"> | |||
<td style="height: 24px;">[https://github.com/corvusoft/restbed restbed]</td> | |||
<td style="height: 24px;"></td> | |||
<td style="height: 24px;"></td> | |||
<td style="height: 24px;"></td> | |||
<td style="height: 24px;"></td> | |||
<td style="height: 24px;"></td> | |||
<td style="height: 24px;">Check score...</td> | |||
</tr> | </tr> | ||
</table> | </table> | ||
== | == websocketpp == | ||
To install: | |||
# on bitpost | |||
m@bitpost ~/development $ git clone --bare --shared --mirror git@github.com:zaphoyd/websocketpp.git | |||
# on melange or other client | |||
# Fix up boost if you installed it with my normal install scripts, | |||
# because the lib is going to look in hardcoded (boost)/stage/lib | |||
cd ~/development/boost_1_61_0/stage | |||
ln -s ../lib . | |||
cd ~/development | |||
git clone bitpost.com:development/websocketpp | |||
cd websocketpp | |||
sudo apt-get install scons | |||
export BOOST_ROOT=/home/m/development/boost_1_61_0 | |||
scons -j 4 | |||
== proxygen == | == proxygen == | ||
== libwebsockets == | == libwebsockets == | ||
== older notes == | |||
c++ websockets with asio, header-only! | |||
https://github.com/zaphoyd/websocketpp | |||
https://www.zaphoyd.com/websocketpp/manual/building-program-websocket | |||
https://github.com/AndriusA/ws-perftester <--- client stress tester that uses wspp | |||
https://github.com/eidheim/Simple-Web-Server <--- up and running and tested in no time | |||
https://github.com/eidheim/Simple-WebSocket-Server <--- hard to merge with SWS? shouldn't be | |||
https://libwebsockets.org/ -- works great for ws, does it do https well? I know it well from causam | |||
https://github.com/cesanta/mongoose ----- robust and ugly cross-platform C hackery | |||
this beast from facebook looks good too but no websockets: | |||
https://github.com/facebook/proxygen | |||
another | |||
https://github.com/uWebSockets/uWebSockets | |||
good old apache will give you everything you need, slowly (mod is fastest way) | |||
http://httpd.apache.org/docs/2.4/developer/modguide.html | |||
http://stackoverflow.com/a/20921469/717274 | |||
https://github.com/davidmoreno/onion looks like a decent C lib | |||
http://www.gnu.org/software/libmicrohttpd/ gnu contribution, doesn't sound modern tho? check score | |||
https://www.chilkatsoft.com/refdoc/vcCkSocketRef.html this is a huge pile not sure how tested or capable or anything |
Latest revision as of 01:58, 9 December 2016
Summary
LIBRARY | ab MB/sec | ab pages/sec | SSL LABS SCORE | EASE | WS? | COMMENTS |
apache | A | 3 | N | need to write a module, apache remains in charge of message loop (unacceptable) | ||
libwebsockets | 7 | Y | ||||
proxygen | 7 | only easy on ubuntu 14.04; huge kitchen sink of helpers | ||||
Simple-Web-Server | B | 10 | Y | websockets in a seperate compatible project; may be able to leverage asio to improve score (capped by RC4); no forward secrecy; needed to provide better CRT chain (that's on me) | ||
websocketpp | uses asio, specifies a "modern" mode that only allows TSL1.2 | |||||
mongoose | 3 | messy ton of hand-crafted portability C code scared me off | ||||
onion | looks like a strong C lib | |||||
libmicrohttpd | GNU c lib, not sure it supports modern algos, check score... | |||||
restbed | Check score... |
websocketpp
To install:
# on bitpost m@bitpost ~/development $ git clone --bare --shared --mirror git@github.com:zaphoyd/websocketpp.git
# on melange or other client # Fix up boost if you installed it with my normal install scripts, # because the lib is going to look in hardcoded (boost)/stage/lib cd ~/development/boost_1_61_0/stage ln -s ../lib . cd ~/development git clone bitpost.com:development/websocketpp cd websocketpp sudo apt-get install scons export BOOST_ROOT=/home/m/development/boost_1_61_0 scons -j 4
proxygen
libwebsockets
older notes
c++ websockets with asio, header-only! https://github.com/zaphoyd/websocketpp https://www.zaphoyd.com/websocketpp/manual/building-program-websocket https://github.com/AndriusA/ws-perftester <--- client stress tester that uses wspp
https://github.com/eidheim/Simple-Web-Server <--- up and running and tested in no time https://github.com/eidheim/Simple-WebSocket-Server <--- hard to merge with SWS? shouldn't be
https://libwebsockets.org/ -- works great for ws, does it do https well? I know it well from causam
https://github.com/cesanta/mongoose ----- robust and ugly cross-platform C hackery
this beast from facebook looks good too but no websockets: https://github.com/facebook/proxygen
another https://github.com/uWebSockets/uWebSockets
good old apache will give you everything you need, slowly (mod is fastest way) http://httpd.apache.org/docs/2.4/developer/modguide.html http://stackoverflow.com/a/20921469/717274
https://github.com/davidmoreno/onion looks like a decent C lib
http://www.gnu.org/software/libmicrohttpd/ gnu contribution, doesn't sound modern tho? check score
https://www.chilkatsoft.com/refdoc/vcCkSocketRef.html this is a huge pile not sure how tested or capable or anything