45 lines
1.6 KiB
Markdown
45 lines
1.6 KiB
Markdown
**µWebSockets.js** is a JavaScript platform, runtime and web server built on [µWebSockets](https://github.com/uNetworking/uWebSockets) v0.15 and V8.
|
|
|
|
There are two modes; compiled as a stand-alone JavaScript runtime or as a Node.js native addon.
|
|
|
|
For the most common Node.js systems are available precompiled binaries:
|
|
|
|
```
|
|
npm install uNetworking/uWebSockets.js#semver:0.0.1
|
|
```
|
|
|
|
or any such version.
|
|
|
|
```javascript
|
|
/* The stand-alone runtime has uWS namespace already loaded. */
|
|
var uWS = uWS ? uWS : require('../dist/uws.js');
|
|
|
|
const world = 'Strings are slower than ArrayBuffer but who cares for demo purose!';
|
|
const port = 3000;
|
|
|
|
uWS.App().get('/hello', (res, req) => {
|
|
res.end(world);
|
|
}).get('/*', (res, req) => {
|
|
res.writeHeader('content-type', 'text/html; charset= utf-8').end(req.getHeader('user-agent') + ' är din user agent, biatch!');
|
|
}).listen(port, (token) => {
|
|
if (token) {
|
|
console.log('Listening to port ' + port);
|
|
} else {
|
|
console.log('Failed to listen to port ' + port);
|
|
}
|
|
});
|
|
```
|
|
|
|
### Benchmarks
|
|
Performance retention is up to 75% of native C++ [µWebSockets](https://github.com/uNetworking/uWebSockets) v0.15. That puts it some 20x as fast as Deno and even faster than most C++-only servers, all from within a JavaScript VM.
|
|
![](https://github.com/uNetworking/uWebSockets/blob/master/misc/bigshot_lineup.png)
|
|
|
|
### Build from source
|
|
Easiest is to compile yourself a Node.js native addon. The following works for Linux and macOS systems:
|
|
```
|
|
git clone --recursive https://github.com/uNetworking/uWebSockets.js.git
|
|
cd uWebSockets.js
|
|
make
|
|
node examples/HelloWorld.js
|
|
```
|