1[![CI status](https://libwebsockets.org/sai/status/libwebsockets)](https://libwebsockets.org/git/libwebsockets) [![Coverity Scan Build Status](https://scan.coverity.com/projects/3576/badge.svg)](https://scan.coverity.com/projects/3576) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/2266/badge)](https://bestpractices.coreinfrastructure.org/projects/2266) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/144fb195a83046e484a75c8b4c6cfc99)](https://www.codacy.com/app/lws-team/libwebsockets?utm_source=github.com&utm_medium=referral&utm_content=warmcat/libwebsockets&utm_campaign=Badge_Grade) [![Total alerts](https://img.shields.io/lgtm/alerts/g/warmcat/libwebsockets.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/warmcat/libwebsockets/alerts/) [![Language grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/warmcat/libwebsockets.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/warmcat/libwebsockets/context:cpp) [![Language grade: JavaScript](https://img.shields.io/lgtm/grade/javascript/g/warmcat/libwebsockets.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/warmcat/libwebsockets/context:javascript) 2 3# Libwebsockets 4 5Libwebsockets is a simple-to-use, MIT-license, pure C library providing client and server 6for **http/1**, **http/2**, **websockets**, **MQTT** and other protocols in a security-minded, 7lightweight, configurable, scalable and flexible way. It's easy to build and 8cross-build via cmake and is suitable for tasks from embedded RTOS through mass 9cloud serving. 10 11It supports a lot of lightweight ancilliary implementations for things like JSON, 12CBOR, JOSE, COSE, and supports OpenSSL and MbedTLS v2 and v3 out of the box for everything. 13It's very gregarious when it comes to event loop sharing, supporting libuv, libevent, libev, 14sdevent, glib and uloop, as well as custom event libs. 15 16[100+ independent minimal examples](https://libwebsockets.org/git/libwebsockets/tree/minimal-examples) for various scenarios, CC0-licensed 17(public domain) for cut-and-paste, allow you to get started quickly. 18 19[There are a lot of READMEs](https://libwebsockets.org/git/libwebsockets/tree/READMEs) on a variety of topics. 20 21[We do a huge amount of CI testing per push](https://libwebsockets.org/sai/), currently 582 builds on 30 platforms. 22[You can see the lws CI rack and read about how lws-based Sai is used to coordinate all the testing](https://warmcat.com/2021/08/21/Sai-CI.html). 23 24![overview](./doc-assets/lws-overview.png) 25 26News 27---- 28 29## v4.3 is released 30 31See the [changelog](https://libwebsockets.org/git/libwebsockets/tree/changelog) 32 33 34## Lws work retrospective 35 36The initial commit for lws will have been 11 years ago come Oct 28 2021, it's been a lot of work. 37There are a total of 4.3K patches, touching 800KLOC cumulatively (this is not the size in the 38repo, but over the years, how many source lines were changed by patches). 39 40![overview](./doc-assets/work.png) 41 42Gratifyingly, it turns out over the years, ~15% of that was contributed by 404 contributors: that's not so bad. 43Thanks a lot to everyone who has provided patches. 44 45Today at least tens of millions of devices and product features rely on lws to 46handle their communications including several from FAANG; Google now include lws 47as part of Android sources. 48 49## Support 50 51This is the libwebsockets C library for lightweight websocket clients and 52servers. For support, visit 53 54 https://libwebsockets.org 55 56and consider joining the project mailing list at 57 58 https://libwebsockets.org/mailman/listinfo/libwebsockets 59 60You can get the latest version of the library from git: 61 62- https://libwebsockets.org/git 63 64Doxygen API docs for development: https://libwebsockets.org/lws-api-doc-main/html/index.html 65 66