From a7b94973c78af71efa0dc7262fc22b7dbf513bb1 Mon Sep 17 00:00:00 2001 From: Alex Hultman Date: Tue, 12 May 2020 10:24:11 +0200 Subject: [PATCH] New frontpage --- README.md | 65 ++++++++++++++++++++++++++++++----------------- misc/nodejs.png | Bin 0 -> 16076 bytes misc/python3.png | Bin 0 -> 39535 bytes 3 files changed, 41 insertions(+), 24 deletions(-) create mode 100644 misc/nodejs.png create mode 100644 misc/python3.png diff --git a/README.md b/README.md index d83b525..21be59c 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,35 @@ +
- +
+Simple, secure[1] & standards compliant[2] web server for the most demanding[3] of applications. Read more... +

-*µWebSockets™ (it's "[micro](https://en.wikipedia.org/wiki/Micro-)") is simple, secure*[[1]](fuzzing) *& standards compliant*[[2]](https://unetworking.github.io/uWebSockets.js/report.pdf) *web I/O for the most demanding*[[3]](benchmarks) *of applications.* -• [User manual](misc/READMORE.md) • [uSockets](https://github.com/uNetworking/uSockets) • [For Python](https://github.com/uNetworking/uWebSockets.py) • [For Node.js](https://github.com/uNetworking/uWebSockets.js) - -*© 2016-2019, >39,632,272 downloads* + Language grade: C/C++
+

+ +### :closed_lock_with_key: Optimized security +Being meticulously optimized for speed and memory footprint, µWebSockets is fast enough to do encrypted TLS 1.3 messaging quicker than most alternative servers can do even unencrypted, cleartext messaging[3]. + +Furthermore, we partake in Google's OSS-Fuzz with a ~90% daily fuzzing coverage with no sanitizer issues. LGTM scores us flawless A+ from having zero CodeQL alerts. + + +### :arrow_forward: Rapid scripting +µWebSockets is written entirely in C & C++ but has seamless integrations for both Python3 and Node.js backends. This allows for rapid scripting of powerful apps, in your favorite environment. + +   + +### :battery: Batteries included +Designed around a convenient URL router with wildcard & parameter support - paired with efficient pub/sub features inspired by MQTT. µWebSockets should be the obvious, complete starting point for any real-time web project with high demands. + +Start building your Http & WebSocket apps in a swift; read the docs and see examples. -#### Express yourself briefly. ```c++ uWS::SSLApp({ - /* There are tons of SSL options */ + /* There are tons of SSL options, see uSockets */ .cert_file_name = "cert.pem", .key_file_name = "key.pem" @@ -26,40 +42,41 @@ uWS::SSLApp({ /* Just a few of the available handlers */ .open = [](auto *ws, auto *req) { - ws->subscribe("buzzword weekly"); + /* MQTT syntax */ + ws->subscribe("sensors/+/house"); }, .message = [](auto *ws, std::string_view message, uWS::OpCode opCode) { ws->send(message, opCode); } -}).listen(9001, [](auto *token) { +}).listen(9001, [](auto *listenSocket) { - if (token) { + if (listenSocket) { std::cout << "Listening on port " << 9001 << std::endl; } }).run(); ``` -Don't miss the [user manual](https://github.com/uNetworking/uWebSockets/blob/master/misc/READMORE.md#user-manual), the [C++ examples](https://github.com/uNetworking/uWebSockets/tree/master/examples) or the [JavaScript examples](https://github.com/uNetworking/uWebSockets.js/tree/master/examples). JavaScript examples are very applicable to C++ developers, so go through them as well. +### :briefcase: Commercially supported +uNetworking AB is a Swedish consulting & contracting company dealing with anything related to µWebSockets; development, support and customer success. -#### Pay what you want. -A free & open source ([permissive](LICENSE)) project since 2016. Kindly sponsored by [BitMEX](https://bitmex.com), [Bitfinex](https://bitfinex.com) & [Coinbase](https://www.coinbase.com/) in 2018 and/or 2019. Individual donations are always accepted via [PayPal](https://paypal.me/uwebsockets). +Don't hesitate sending a mail if you're building something large, in need of advice or having other business inquiries in mind. We'll figure out what's best for both parties and make sure you're not stepping into one of the many common pitfalls. -
+Special thanks to BitMEX, Bitfinex, Google, Coinbase, Bitwyre and deepstreamHub for allowing the project itself to thrive on GitHub since 2016 - this project would not be possible without these beautiful companies. -*Code is provided as-is, do not expect or demand **free** consulting services, personal tutoring, advice or debugging.* + -#### Deploy like a boss. -Commercial support is available via a per-hourly consulting plan or as otherwise negotiated. If you're stuck, worried about design or just in need of help don't hesitate throwing [me, the author](https://github.com/alexhultman) a mail and we'll figure out what's best for both parties. I want your business to have a proper understanding of the problem before rushing in to one of the many pitfalls. +### :jigsaw: Pluggable architecture +µWebSockets builds on µSockets, a foundation library implementing eventing, networking and cryptography in three different layers. Every layer has multiple implementations and you control the compiled composition with flags. -#### Excel across the board. -All that glitters is not gold. Especially so in a market driven by flashy logos, hype and pointless badges. +In a nutshell: -Http | WebSockets ---- | --- -![](misc/bigshot_lineup.png) | ![](misc/websocket_lineup.png) +* `WITH_WOLFSSL=1 WITH_LIBUV=1 make examples` builds examples utilizing WolfSSL and libuv +* `WITH_OPENSSL=1 make examples` builds examples utilizing OpenSSL and the native kernel -#### Keep it legal. +See µSockets for an up-to-date list of flags and a more detailed explanation. + +### :handshake: Permissively licensed Intellectual property, all rights reserved. -*You are forbidden to use logos, product names, texts, names or otherwise perceived brand identity, of copyright holder, in any way that might state or imply that the copyright holder endorses your distribution or in any way that might state or imply that you created the original software. Modified distributions must carry, from the original distribution, significantly different names and must not be confused with the original distribution.* +Apache License 2.0 is a permissive license with few limitations. Make sure you properly understand the concept of licenses and how they relate to copyright & trademark laws. If you're uncertain about your permissions, please ask before assuming. diff --git a/misc/nodejs.png b/misc/nodejs.png new file mode 100644 index 0000000000000000000000000000000000000000..9b3ef4b1d3c9478506a41e9461c3a36421ecbe5c GIT binary patch literal 16076 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 literal 0 HcmV?d00001 diff --git a/misc/python3.png b/misc/python3.png new file mode 100644 index 0000000000000000000000000000000000000000..02316600dde8e218f504cc0dcd0cf89f8ac474db GIT binary patch literal 39535 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 literal 0 HcmV?d00001