Installations
npm install lws
Developer
lwsjs
Developer Guide
Module System
ESM
Min. Node Version
>=12.20
Typescript Support
No
Node Version
22.7.0
NPM Version
10.8.2
Statistics
47 Stars
327 Commits
18 Forks
4 Watching
1 Branches
7 Contributors
Updated on 27 Nov 2024
Languages
JavaScript (100%)
Total Downloads
Cumulative downloads
Total Downloads
15,526,147
Last day
-41.4%
15,419
Compared to previous day
Last week
-14.9%
101,178
Compared to previous week
Last month
16.3%
484,250
Compared to previous month
Last year
22.5%
3,995,475
Compared to previous year
Daily Downloads
Weekly Downloads
Monthly Downloads
Yearly Downloads
lws
A lean, modular web server for rapid full-stack development.
Lws is an application core for quickly launching a local web server. Behaviour is added via plugins giving you full control over how requests are processed and responses created.
- Supports HTTP, HTTPS and HTTP2.
- Small and 100% personalisable. Load and use only the behaviour required by your project.
- Attach a custom view to personalise how activity is visualised.
- Programmatic and command-line APIs.
Synopsis
Core usage
Launch an HTTP server on the default port of 8000.
$ lws
Listening at http://mba4.local:8000, http://127.0.0.1:8000, http://192.168.0.200:8000
For HTTPS or HTTP2, pass the --https
or --http2
flags respectively.
$ lws --http2
Listening at https://mba4.local:8000, https://127.0.0.1:8000, https://192.168.0.200:8000
Now your server is running, the next step is to attach some middleware to process requests.
Using middleware plugins
Install and use some middleware (lws-static and lws-index) to serve static files and directory listings.
$ npm install --save-dev lws-static lws-index
$ lws --stack lws-static lws-index
Listening at http://mba4.local:8000, http://127.0.0.1:8000, http://192.168.0.200:8000
The current directory will now be available to explore at http://127.0.0.1:8000
.
Install and use logging middleware. Note the lws-
prefix is optional when supplying module names to --stack
.
$ npm install --save-dev lws-log
$ lws --stack log static index --log.format combined
Listening at http://mba4.local:8000, http://127.0.0.1:8000, http://192.168.0.200:8000
::ffff:127.0.0.1 - GET /lws.config.js HTTP/1.1 200 52 - 8.259 ms
::ffff:127.0.0.1 - GET /package.json HTTP/1.1 200 399 - 1.478 ms
Creating a custom middleware plugin
Lws uses Koa as its middleware engine. Here is a trivial plugin example, save the following code as example-middleware.js
:
1class ExamplePlugin { 2 middleware () { 3 return async (ctx, next) => { 4 ctx.body = 'Hello from lws!' 5 await next() 6 } 7 } 8} 9 10export default ExamplePlugin
Now launch an HTTP server using this middleware.
$ lws --stack example-middleware.js
Listening at http://mba4.local:8000, http://127.0.0.1:8000, http://192.168.0.200:8000
$ curl http://127.0.0.1:8000
Hello from lws!
Install
$ npm install --save-dev lws
Documentation
- API Reference
See also
- lws plugin list.
- local-web-server, an lws distribution with the most common plugins already installed.
© 2016-24 Lloyd Brookes <75pound@gmail.com>.
Tested by test-runner. Documented by jsdoc-to-markdown.
No vulnerabilities found.
Reason
no dangerous workflow patterns detected
Reason
no binaries found in the repo
Reason
license file detected
Details
- Info: project has a license file: LICENSE:0
- Info: FSF or OSI recognized license: MIT License: LICENSE:0
Reason
1 existing vulnerabilities detected
Details
- Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv
Reason
2 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 1
Reason
Found 1/29 approved changesets -- score normalized to 0
Reason
detected GitHub workflow tokens with excessive permissions
Details
- Warn: no topLevel permission defined: .github/workflows/node.js.yml:1
- Info: no jobLevel write permissions found
Reason
dependency not pinned by hash detected -- score normalized to 0
Details
- Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/node.js.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/lwsjs/lws/node.js.yml/master?enable=pin
- Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/node.js.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/lwsjs/lws/node.js.yml/master?enable=pin
- Warn: npmCommand not pinned by hash: .github/workflows/node.js.yml:28
- Info: 0 out of 2 GitHub-owned GitHubAction dependencies pinned
- Info: 0 out of 1 npmCommand dependencies pinned
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
project is not fuzzed
Details
- Warn: no fuzzer integrations found
Reason
branch protection not enabled on development/release branches
Details
- Warn: branch protection not enabled for branch 'master'
Reason
security policy file not detected
Details
- Warn: no security policy file detected
- Warn: no security file to analyze
- Warn: no security file to analyze
- Warn: no security file to analyze
Reason
SAST tool is not run on all commits -- score normalized to 0
Details
- Warn: 0 commits out of 2 are checked with a SAST tool
Score
3.4
/10
Last Scanned on 2024-11-18
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More