1
0
Fork 0
mirror of https://github.com/warmcat/libwebsockets.git synced 2025-03-30 00:00:16 +01:00
libwebsockets/lib
Andy Green c6c7ab2b44 event libs: default to building as dynamically loaded plugins
Event lib support as it has been isn't scaling well, at the low level
libevent and libev headers have a namespace conflict so they can't
both be built into the same image, and at the distro level, binding
all the event libs to libwebsockets.so makes a bloaty situation for
packaging, lws will drag in all the event libs every time.

This patch implements the plan discussed here

https://github.com/warmcat/libwebsockets/issues/1980

and refactors the event lib support so they are built into isolated
plugins and bound at runtime according to what the application says
it wants to use.  The event lib plugins can be packaged individually
so that only the needed sets of support are installed (perhaps none
of them if the user code is OK with the default poll() loop).  And
dependent user code can mark the specific event loop plugin package
as required so pieces are added as needed.

The eventlib-foreign example is also refactored to build the selected
lib support isolated.

A readme is added detailing the changes and how to use them.

https://libwebsockets.org/git/libwebsockets/tree/READMEs/README.event-libs.md
2020-08-31 16:51:37 +01:00
..
abstract cmakelist: Augean Stables refactor 2020-05-27 08:40:12 +01:00
core event libs: default to building as dynamically loaded plugins 2020-08-31 16:51:37 +01:00
core-net event libs: default to building as dynamically loaded plugins 2020-08-31 16:51:37 +01:00
drivers lws_netdev: fix rssi averaging 2020-07-21 08:16:01 +01:00
event-libs event libs: default to building as dynamically loaded plugins 2020-08-31 16:51:37 +01:00
jose lws_jwt_token_sanity 2020-07-15 16:18:00 +01:00
misc event libs: default to building as dynamically loaded plugins 2020-08-31 16:51:37 +01:00
plat event libs: default to building as dynamically loaded plugins 2020-08-31 16:51:37 +01:00
roles event libs: default to building as dynamically loaded plugins 2020-08-31 16:51:37 +01:00
secure-streams ss: protect against reentry in lws_destroy 2020-08-31 16:51:37 +01:00
system coverity: COV294450 and COV294451 2020-07-27 11:16:49 +01:00
tls clean: SSL_accept failure just needs info logging 2020-08-31 16:51:37 +01:00
CMakeLists.txt event libs: default to building as dynamically loaded plugins 2020-08-31 16:51:37 +01:00
README.md cleaning 2020-01-05 22:17:58 +00:00

Library sources layout

Code that goes in the libwebsockets library itself lives down ./lib

Path Sources
lib/core Core lws code related to generic fd and wsi servicing and management
lib/core-net Core lws code that applies only if networking enabled
lib/event-libs Code containing optional event-lib specific adaptations
lib/jose JOSE / JWS / JWK / JWE implementations
lib/misc Code for various mostly optional miscellaneous features
lib/plat Platform-specific adaptation code
lib/roles Code for specific optional wsi roles, eg, http/1, h2, ws, raw, etc
lib/system Code for system-level features, eg, dhcpclient
lib/tls Code supporting the various TLS libraries