1
0
Fork 0
mirror of https://github.com/warmcat/libwebsockets.git synced 2025-03-09 00:00:04 +01:00
No description
Find a file
Andy Green 2cfa260e62 sspc: refactor to allow different transports
This is a NOP for existing usecases.

At the moment the only implemented transport for serialized SS is wsi, it's
typically used with Unix Domain Sockets, but it also works over tcp the
same.

It generalizes the interface between serialized chunks and the
transport, separately for client and proxy.  The wsi transport is migrated
to use the new transport ops structs.

It will then be possible to "bring your own transport", so long as it is
reliable, and in-order, both for proxy and client / sspc.

We also adapt minimal-secure-streams-binance to build the -client variant
via SS proxy as well.

LWS_ONLY_SSPC is added so libwebsockets can be produced with just sspc
client support even for tiny targets.

A new embedded minimal example for rpi pico is also provided that
demonstrates using Serialized SS over a UART to an SS proxy, to implement
the SS Binance example on the pico, even though it has no networking itself.
2021-10-08 09:48:41 +01:00
cmake sspc: refactor to allow different transports 2021-10-08 09:48:41 +01:00
contrib cmake: support iOS armv7 build 2020-11-09 07:40:40 +00:00
doc-assets sspc: refactor to allow different transports 2021-10-08 09:48:41 +01:00
include sspc: refactor to allow different transports 2021-10-08 09:48:41 +01:00
lib sspc: refactor to allow different transports 2021-10-08 09:48:41 +01:00
lwsws lws_metrics 2021-03-08 21:47:28 +00:00
minimal-examples sspc: refactor to allow different transports 2021-10-08 09:48:41 +01:00
plugin-standalone plugins: add option LWS_WITH_PLUGINS_BUILTIN 2021-01-31 20:24:29 +00:00
plugins Wextra 2021-07-04 10:29:54 +01:00
READMEs ws-server-threads-smp: modernize 2021-10-05 07:40:03 +01:00
scripts cose: keys and signing + validation 2021-08-31 05:45:35 +01:00
test-apps lecp: add CBOR stream parser LECP like JSON LEJP 2021-08-21 17:44:40 +01:00
win32port mingw: libevent build fixes 2020-11-28 10:58:38 +00:00
.gitignore dhcp: clean 2021-02-17 11:39:15 +00:00
.mailmap mailmap 2018-08-14 08:00:30 +08:00
.sai.json esp32c3 2021-08-31 05:45:40 +01:00
bug_report.md docs: switch to use main 2020-10-19 16:35:03 +01:00
changelog v4.3.0 2021-10-05 07:40:17 +01:00
CMakeLists-implied-options.txt cose: keys and signing + validation 2021-08-31 05:45:35 +01:00
CMakeLists.txt sspc: refactor to allow different transports 2021-10-08 09:48:41 +01:00
component.mk Fixes to track updates in esp-idf 2018-06-20 16:41:28 +08:00
Kconfig esp32: enforce ssl nonblocking 2017-04-03 14:09:37 +08:00
libwebsockets.dox ss: server: add foreach client cb api 2020-11-11 06:58:20 +00:00
LICENSE lecp: add CBOR stream parser LECP like JSON LEJP 2021-08-21 17:44:40 +01:00
Makefile.projbuild esp32-selfsigned 2017-12-01 11:37:35 +08:00
README.md v4.3.0 2021-10-05 07:40:17 +01:00

CI status Coverity Scan Build Status CII Best Practices Codacy Badge Total alerts Language grade: C/C++ Language grade: JavaScript

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.

overview

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).

overview

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

https://libwebsockets.org

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