1
0
Fork 0
mirror of https://github.com/warmcat/libwebsockets.git synced 2025-03-16 00:00:07 +01:00
libwebsockets/README.md

104 lines
4.4 KiB
Markdown
Raw Normal View History

[![Travis Build Status](https://travis-ci.org/warmcat/libwebsockets.svg)](https://travis-ci.org/warmcat/libwebsockets)
[![Appveyor Build status](https://ci.appveyor.com/api/projects/status/qfasji8mnfnd2r8t?svg=true)](https://ci.appveyor.com/project/lws-team/libwebsockets)
[![Coverity Scan Build Status](https://scan.coverity.com/projects/3576/badge.svg)](https://scan.coverity.com/projects/3576)
2018-04-15 09:19:28 +08:00
![lws-overview](./doc-assets/lws-overview.png)
2017-03-16 10:46:31 +08:00
News
----
## Major CI improvements for QA
The Travis build of lws done on every commit now runs
Tests|Count|Explanation
---|---|---
Build / Linux / gcc|14|-Wall -Werror cmake config variants
Build / Mac / Clang|14|-Wall -Werror cmake config variants
Build / Windows / MSVC|7|default
Selftests|openssl:33, mbedtls:33|minimal examples built and run against each other and remote server
attack.sh|225|Correctness, robustness and security tests for http parser
Autobahn Server|480|Testing lws ws client, including permessage-deflate
Autobahn Client|480|Testing lws ws server, including permaessage-deflate
h2spec|openssl:146, mbedtls:146|Http/2 server compliance suite (in strict mode)
h2load|openssl:6, mbedtls:6|Http/2 server load tool (checks 10K / 100K in h1 and h2, at 1, 10, 100 concurrency)
h2load SMP|6|Http/2 and http/1.1 server load checks on SMP server build
The over 1,500 tests run on every commit take most of an hour to complete.
If any problems are found, it breaks the travis build, generating an email.
Current master passes all the tests and these new CI arrangements will help
keep it that way.
2018-03-11 11:26:06 +08:00
## Lws has the first official ws-over-h2 server support
![wss-over-h2](https://libwebsockets.org/sc-wss-over-h2.png)
2018-03-20 13:28:25 +08:00
There's a new standard on the RFC track that enables multiplexing ws connections
2018-03-11 11:26:06 +08:00
over an http/2 link. Compared to making individual tcp and tls connections for
each ws link back to the same server, this makes your site start up radically
2018-03-20 13:28:25 +08:00
faster, and since all the connections are in one tls tunnel, with considerable memory
2018-03-11 11:26:06 +08:00
reduction serverside.
To enable it on master you just need -DLWS_WITH_HTTP2=1 at cmake. No changes to
existing code are necessary for either http/2 (if you use the official header creation
apis if you return your own headers, as shown in the test apps for several versions)
or to take advantage of ws-over-h2. When built with http/2 support, it automatically
falls back to http/1 and traditional ws upgrade if that's all the client can handle.
2018-03-20 13:28:25 +08:00
Currently only Chrome Canary v67 supports this ws-over-h2 encapsulation (chrome
must be started with `--enable-websocket-over-http2` switch to enable it currently)
but the other browsers will catch up soon.
2018-03-11 11:26:06 +08:00
## New "minimal examples"
https://github.com/warmcat/libwebsockets/tree/master/minimal-examples
2018-03-20 13:28:25 +08:00
These are like the test apps, but focus on doing one thing, the best way, with the minimum amount of code. For example the minimal-http-server serves the cwd on http/1 or http/2 in 50 LOC. Same thing with tls is just three more lines.
2018-03-20 13:28:25 +08:00
They build standalone, so it's easier to copy them directly to start your own project; they
are CC0 licensed (public domain) to facilitate that.
## Windows binary builds
2017-10-26 07:24:45 +08:00
32- and 64-bit Windows binary builds are available via Appveyor. Visit [lws on Appveyor](https://ci.appveyor.com/project/lws-team/libwebsockets),
click on a build, the ARTIFACTS, and unzip the zip file at `C:\Program Files (x86)/libwebsockets`.
## Latest Stable
- v2.4.2 is out... HTTP/2 server support and mbedTLS as a TLS backend.
2017-10-16 20:09:58 +08:00
see the changelog https://github.com/warmcat/libwebsockets/blob/v2.4-stable/changelog
2017-09-22 09:46:58 +08:00
Please note the additional READMEs have moved to ./READMEs/
## ESP32 is supported
2017-07-28 14:13:42 +08:00
2017-03-16 10:46:31 +08:00
ESP32 is now supported in lws! Download the
- factory https://github.com/warmcat/lws-esp32-factory and
- test server app https://github.com/warmcat/lws-esp32-test-server-demos
The ESP32 stuff has my dynamic mbedtls buffer allocation patches applied,
which reduce allocation for small payload TLS links by around 26KiB per connection.
## Support
2016-08-07 08:33:08 +08:00
This is the libwebsockets C library for lightweight websocket clients and
servers. For support, visit
https://libwebsockets.org
https://github.com/warmcat/libwebsockets
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:
- https://github.com/warmcat/libwebsockets
- https://libwebsockets.org/git
Doxygen API docs for master: https://libwebsockets.org/lws-api-doc-master/html/index.html