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 dcaa0013b4 lecp: add CBOR stream parser LECP like JSON LEJP
This provides very memory-efficient CBOR stream parsing
and writing.

The parser  converts pieces of CBOR into callbacks that define
the structure and collate string and blobs into buffer chunks
for extensible and easy access.

It is fragementation-safe and does not need all the CBOR in
the same place at one time, chunks of CBOR are parsed and
discarded as provided.

It does not allocate and just needs a few hundred bytes of
stack for even huge CBOR objects.  Huge strings and blobs
are handled without needing memory to hold them atomically.

Includes ./minimal-examples/api-tests/api-test-lecp that
unit tests it against 82 official example CBORs and
26 additional test vectors from COSE (just checking the CBOR
parsing).

The writing apis allow printf style semantics with a variety
of CBOR-aware %-formats.  The apis write into a context that
manages output buffer usage, if the output buffer fills,
then the apis return with an AGAIN code that lets you issue
and reset the output buffer and repeat the api all to issue
more output.  The subsequent calls can occur much later or
from a different function context, so this is perfect for
WRITEABLE-mediated output from the network parts of lws.

See ./READMEs/README.cbor-lecp.md
2021-08-21 17:44:40 +01:00
cmake lecp: add CBOR stream parser LECP like JSON LEJP 2021-08-21 17:44:40 +01:00
contrib cmake: support iOS armv7 build 2020-11-09 07:40:40 +00:00
doc-assets tls: JIT Trust 2021-06-22 15:55:29 +01:00
include lecp: add CBOR stream parser LECP like JSON LEJP 2021-08-21 17:44:40 +01:00
lib lecp: add CBOR stream parser LECP like JSON LEJP 2021-08-21 17:44:40 +01:00
lwsws lws_metrics 2021-03-08 21:47:28 +00:00
minimal-examples lecp: add CBOR stream parser LECP like JSON LEJP 2021-08-21 17:44:40 +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 lecp: add CBOR stream parser LECP like JSON LEJP 2021-08-21 17:44:40 +01:00
scripts tls: JIT Trust 2021-06-22 15:55:29 +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 lecp: add CBOR stream parser LECP like JSON LEJP 2021-08-21 17:44:40 +01:00
bug_report.md docs: switch to use main 2020-10-19 16:35:03 +01:00
changelog v4.2.0 release 2021-04-15 17:44:02 +01:00
CMakeLists-implied-options.txt windows: work well with vcpkg pthreads 2021-04-05 10:55:04 +01:00
CMakeLists.txt lecp: add CBOR stream parser LECP like JSON LEJP 2021-08-21 17:44:40 +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 README.md: update 2021-07-13 08:27:25 +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.

80+ 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 495 builds on 27 platforms.

overview

News

v4.2 is released

See the changelog

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