Coder Social home page Coder Social logo

rdumusc / libwebsockets Goto Github PK

View Code? Open in Web Editor NEW

This project forked from warmcat/libwebsockets

0.0 2.0 0.0 16.5 MB

canonical libwebsockets.org websocket library

License: Other

CMake 4.92% Makefile 1.87% Shell 1.47% C 83.31% HTML 5.22% JavaScript 1.32% Java 0.67% C++ 0.64% NSIS 0.14% Objective-C 0.43%

libwebsockets's Introduction

Travis Build Status Appveyor Build status Coverity Scan Build Status

lws-overview

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.

Lws has the first official ws-over-h2 server support

wss-over-h2

There's a new standard on the RFC track that enables multiplexing ws connections 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 faster, and since all the connections are in one tls tunnel, with considerable memory 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.

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.

New "minimal examples"

https://github.com/warmcat/libwebsockets/tree/master/minimal-examples

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.

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

32- and 64-bit Windows binary builds are available via Appveyor. Visit lws on Appveyor, 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.

see the changelog https://github.com/warmcat/libwebsockets/blob/v2.4-stable/changelog

Please note the additional READMEs have moved to ./READMEs/

ESP32 is supported

ESP32 is now supported in lws! Download the

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

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:

Doxygen API docs for master: https://libwebsockets.org/lws-api-doc-master/html/index.html

libwebsockets's People

Contributors

abruines avatar amery avatar arokux avatar benjamind avatar davidgaleano avatar dbrnz avatar dosvald avatar edwin-oetelaar avatar fancycode avatar hashok avatar inindev avatar jmillan avatar joakimsoderberg avatar jvijtiuk avatar jwinarske avatar kommendorkapten avatar leonardorufino avatar lws-team avatar martell avatar mmilata avatar nickdowell avatar ondraco avatar paroga avatar ppentchev avatar qua-iy avatar ralight avatar shyswork avatar stephaneberle9 avatar vpeter4 avatar wonder-mice avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.