Popularity
8.3
Stable
Activity
9.6
Growing
3,046
222
1,190

Description

libwebsockets features * Provides server and client APIs for RFC6455 v13 ws:// and wss:// websocket protocol, along with http:// and https:// * Can be configured to use OpenSSL, CyaSSL, or WolfSSL to provide fully encrypted client and server links - including client certificate support * Lightweight and fast even at 250K connections per thread and beyond - performance per byte and performance per MIPS many times better than traditional solutions * CMake based project that has been used in a variety of OS contexts including Linux (uclibc and glibc), ARM-based embedded boards, MBED3, MIPS / OpenWRT, Windows, Android, Apple iOS and even Tivo. It's used all over the place including The New York Times customer-facing servers and BMW. * It includes a stub webserver that is enough to deliver your scripts to the browser that open websocket connections back to the same server, so it can solve the entire server side, ws://, wss://, http://, and https:// in one step. Apache, Java or any other server-side support is not needed. * Compliant browsers from the last few years are supported on any platform. * Full-strength SSL suport: A+ on SSLLABS test (this server is powered by lwsws) * Architectural features like nonblockinng event loop, zero-copy for payload data and FSM-based protocol parsers make it ideal for realtime operation on resource-constrained devices * Simple, pure C: user code creates a libwebsockets context with options and a callback, library calls the callback when events occur on the connection - no activity on connections == 0% CPU * Posix poll(), libev (ie, epoll) and libuv event loops supported * Proxy support, including Basic Auth

Code Quality Rank: L2
Programming language: C
License: GNU General Public License v3.0 or later
Tags: Networking     HTTP     WebSocket    
Latest version: v4.2.0

libwebsockets alternatives and similar libraries

Based on the "Networking" category.
Alternatively, view libwebsockets alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of libwebsockets or a related project?

Add another 'Networking' Library

README

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](./doc-assets/lws-overview.png)

News

Request for help on mp4 / h.264 / libav*

If you're interested in ws + h.264, there's a 80-90% complete minimal example that needs help with the mp4 container part, the lws v4l2 integration, MPJPG->h.264 transcoding and ws transport to MediaSource parts already work.

Take a look at the top two patches on _v4l2 branch and post on the mailing list or github to discuss if you can help.

v4.2 is released

See the changelog

Transition from master branch to main branch

The master->main branch transition happened several months ago, currently master is still around as a mirror of main. master branch will go away some time before the next release.

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-master/html/index.html


*Note that all licence references and agreements mentioned in the libwebsockets README section above are relevant to that project's source code only.