27 lines
1.6 KiB
Markdown
27 lines
1.6 KiB
Markdown
## FAQ
|
|
You can read the frequently asked questions [here](FAQ.md).
|
|
|
|
## Motivation and goals
|
|
µWebSockets is a simple to use yet thoroughly optimized implementation of HTTP and WebSockets.
|
|
It comes with built-in pub/sub support, HTTP routing, TLS 1.3, IPv6, permessage-deflate and is thorougly battle tested as one of the most popular implementations.
|
|
Unlike other "pub/sub brokers", µWS does not assume or push any particular protocol but only operates over standard WebSockets.
|
|
|
|
The implementation is header-only C++17, cross-platform and compiles down to a tiny binary of a handful kilobytes.
|
|
It depends on µSockets, which is a standard C project for Linux, macOS & Windows.
|
|
|
|
Performance wise you can expect to outperform just about anything out there, that's the goal of the project.
|
|
I can show cases where µWS with SSL significantly outperforms Golang servers running non-SSL. You get the SSL for free in a sense.
|
|
|
|
Another goal of the project is minimalism, simplicity and elegance.
|
|
Design wise it follows an ExpressJS-like interface where you attach callbacks to different URL routes.
|
|
This way you can easily build complete REST/WebSocket services in a few lines of code.
|
|
|
|
The project is async only and runs local to one thread. You scale it as individual threads much like Node.js scales as individual processes. That is, the implementation only sees a single thread and is not thread-safe. There are simple ways to do threading via async delegates though, if you really need to.
|
|
|
|
## Node.js
|
|
µWS is available as "uws" for Node.js where it can serve as a major boost for web related tasks. You can find "uws" on this page.
|
|
|
|
## User manual
|
|
todo
|
|
|