![]() openssl can be built without threads resulting in the following build failure: -- Looking for HMAC_CTX_new -- Looking for HMAC_CTX_new - not found [...] In file included from /home/buildroot/autobuild/instance-0/output-1/build/libwebsockets-4.3.1/include/libwebsockets.h:661, from /home/buildroot/autobuild/instance-0/output-1/build/libwebsockets-4.3.1/lib/core/./private-lib-core.h:140, from /home/buildroot/autobuild/instance-0/output-1/build/libwebsockets-4.3.1/lib/plat/unix/unix-misc.c:28: /home/buildroot/autobuild/instance-0/output-1/build/libwebsockets-4.3.1/include/libwebsockets/lws-genhash.h:85:18: error: field 'ctx' has incomplete type 85 | HMAC_CTX ctx; | ^~~ To fix this build failure, don't unconditionally add pthread if openssl has been found through pkg-config as openssl.pc will contain the appropriate dependencies (i.e. -lpthread but also -lz or -latomic) Fixes: - http://autobuild.buildroot.org/results/2ae9e3249b6fcc9e6c30e7783e264fc6599e61df Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> |
||
---|---|---|
cmake | ||
contrib | ||
doc-assets | ||
include | ||
lib | ||
lwsws | ||
minimal-examples | ||
minimal-examples-lowlevel/raw/minimal-raw-client | ||
plugin-standalone | ||
plugins | ||
READMEs | ||
scripts | ||
test-apps | ||
win32port | ||
.gitignore | ||
.mailmap | ||
.sai.json | ||
bug_report.md | ||
changelog | ||
CMakeLists-implied-options.txt | ||
CMakeLists.txt | ||
component.mk | ||
Kconfig | ||
libwebsockets.dox | ||
LICENSE | ||
Makefile.projbuild | ||
README.md |
Libwebsockets
Libwebsockets is a simple-to-use, MIT-license, pure C library providing client and server for http/1, http/2, websockets, MQTT and other protocols in a security-minded, lightweight, configurable, scalable and flexible way. It's easy to build and cross-build via cmake and is suitable for tasks from embedded RTOS through mass cloud serving.
It supports a lot of lightweight ancilliary implementations for things like JSON, CBOR, JOSE, COSE, and supports OpenSSL and MbedTLS v2 and v3 out of the box for everything. It's very gregarious when it comes to event loop sharing, supporting libuv, libevent, libev, sdevent, glib and uloop, as well as custom event libs.
100+ independent minimal examples for various scenarios, CC0-licensed (public domain) for cut-and-paste, allow you to get started quickly.
There are a lot of READMEs on a variety of topics.
We do a huge amount of CI testing per push, currently 582 builds on 30 platforms. You can see the lws CI rack and read about how lws-based Sai is used to coordinate all the testing.
News
v4.3 is released
See the changelog
Lws work retrospective
The initial commit for lws will have been 11 years ago come Oct 28 2021, it's been a lot of work. There are a total of 4.3K patches, touching 800KLOC cumulatively (this is not the size in the repo, but over the years, how many source lines were changed by patches).
Gratifyingly, it turns out over the years, ~15% of that was contributed by 404 contributors: that's not so bad. Thanks a lot to everyone who has provided patches.
Today at least tens of millions of devices and product features rely on lws to handle their communications including several from FAANG; Google now include lws as part of Android sources.
Support
This is the libwebsockets C library for lightweight websocket clients and servers. For support, visit
and consider joining the project mailing list at
https://libwebsockets.org/mailman/listinfo/libwebsockets
You can get the latest version of the library from git:
Doxygen API docs for development: https://libwebsockets.org/lws-api-doc-main/html/index.html