Skip to content

Latest commit

 

History

History
83 lines (63 loc) · 1.86 KB

README.md

File metadata and controls

83 lines (63 loc) · 1.86 KB

fastWS Server

npm Node version GitHub Action

It's very fast Web Server Node.js server based on uWebSockets.

And very easy to use.

Benchmark result

Documents


Usage

npm i fast-ws-server

const fastWS = require('fast-ws-server')

const app = new fastWS({ /* options */ })

app.ws('/ws', ws => {
  console.log(`Connected ${ws.remoteAddress}`)

  ws.on('message', ({ data }) => {
    ws.sendMessage(data)
  })

  ws.on('echo', ({ reply, data }) => {
    reply(data)
  })
})

app.post('/post', async (req, res) => {
  const data = await req.body()
  res.json(data)
})

app.get('/hello/:name', async (req, res, params) => {
  res.render([
    '<html>',
    '<head><title>Hello</title></head>',
    '<body><h1>Hello, ${escapeHTML(name)}</h1></body>',
    '</html>'
  ].join(''), params)
})

app.get('/hello/:name/alert', async (req, res, params) => {
  res.render([
    '<html>',
    '<head><title>Hello</title></head>',
    '<body><script>alert("Hello, ${escapeVar(name, String)}")</script></body>',
    '</html>'
  ].join(''), params)
})

app.serve('/*') // auto serve project /static/*

app.listen(3000, () => {
  console.log('Listen on 3000')
})

Feature

  • Simple to use
  • Serve static files
  • Simple WebSocket Framework
  • Reload SSL when system signal HUP(1)
  • Graceful shutdown
  • Parse body data
  • URL params parser
  • Support for template engine
  • Response from pipe stream
  • Support cache
  • Support for Socket.io
  • Support for TypeScript
  • Sub-route likes Express.js