canonical libwebsockets.org networking library
Libwebsockets
Libwebsockets 是一个易于使用、采用 MIT 许可证的纯 C 库,以注重安全、轻量级、可配置、可扩展且灵活的方式提供 http/1、http/2、http/3、websockets、webtransport、MQTT 及其他协议的客户端和服务器功能。它可通过 cmake 轻松构建和交叉构建,适用于从嵌入式 RTOS 到大规模云服务的各类任务。
它支持许多轻量级的辅助实现,如 JSON、CBOR、JOSE、COSE 等,并原生支持 OpenSSL 和 MbedTLS v2/3/4 以处理所有相关功能。在事件循环共享方面,它具有很强的兼容性,支持 libuv、libevent、libev、sdevent、glib 和 uloop,以及自定义事件库。
100 多个独立的最小示例 涵盖了各种场景,采用 CC0 许可(公共领域),可直接复制粘贴使用,助您快速入门。
这里有许多关于各种主题的 README 文档。 Doxygen API 文档

V5.0 现已发布……请升级到此版本,因为许多安全修复仅在 v5.0 和 main 分支上可用。
** v5.0 版本的新特性 **
- 新增对 SChannel(Windows 原生 TLS,无需构建 OpenSSL!)、GnuTLS、openHiTLS 和 BearSSL 的支持
- QUIC + H3 + Webtransport 实现,可使用 aws-lc、wolfssl、boringssl、libressl、gnutls 和 schannel(OpenSSL 仅支持 h1/h2;mbedtls 可通过补丁支持)
- WebRTC 混音(如自建 Zoom 功能)
- HLS 服务
| LWS 版本 | 平台 | 协议 | 默认 TLS |
|---|---|---|---|
| <= 4.5 | 非 FreeRTOS | 任意 | OpenSSL |
| <= 4.5 | FreeRTOS | 任意 | mbedTLS |
| 5.0+ | Windows | 任意 | schannel |
| 5.0+ | *nix | h1, h2 | OpenSSL |
| 5.0+ | *nix | quic/h3 | GnuTLS |
| 5.0+ | FreeRTOS | 任意 | mbedTLS |
quic/h3 默认启用构建……因此需要 GnuTLS 而非 OpenSSL 才能使 quic/h3 正常工作。
| TLS 库 | 服务器 TLS | 客户端 TLS | QUIC 传输(TLS 1.3) | WSS / HTTPS | MQTT over TLS | ALPN(HTTP/2) | DTLS(WebRTC) | 会话缓存 | JIT 信任 | 通用加密 |
|---|---|---|---|---|---|---|---|---|---|---|
| GnuTLS | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 否 | 是 |
| OpenSSL | 是 | 是 | 否* | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
| LibreSSL | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 否 | 是 |
| AWS-LC | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 否 | 是 |
| BoringSSL | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 否 | 是 |
| wolfSSL | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 否 | 是 |
| mbedTLS | 是 | 是 | 需要补丁 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
| SChannel | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 否 | 是 |
| BearSSL | 是 | 是 | 否 | 是 | 是 | 是 | 否 | 是 | 是 | 是 |
| openHiTLS | 是 | 是 | 否 | 是 | 是 | 是 | 是(非 SRTP) | 是 | 是 | 是 |
* 注:1) 上游 OpenSSL 未提供必要的 QUIC TLS API (SSL_set_quic_method) 以充当 LWS QUIC 传输的加密引擎。如果您需要 QUIC/HTTP3 支持,建议使用 BoringSSL 或 GnuTLS。
* *注:2) openHiTLS 未提供必要的 QUIC TLS API *
- 内置 DHT 支持:
-DLWS_WITH_DHT=1
项目介绍
官方标准libwebsockets.org网络编程库【此简介由AI生成】