{"id":13461541,"url":"https://github.com/lukeed/sirv","last_synced_at":"2025-05-12T13:23:30.107Z","repository":{"id":41063248,"uuid":"129549229","full_name":"lukeed/sirv","owner":"lukeed","description":"An optimized middleware \u0026 CLI application for serving static files~!","archived":false,"fork":false,"pushed_at":"2025-02-17T17:54:00.000Z","size":275,"stargazers_count":1107,"open_issues_count":22,"forks_count":60,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-05-08T07:38:24.989Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lukeed.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"license","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"lukeed"}},"created_at":"2018-04-14T19:45:21.000Z","updated_at":"2025-05-07T10:58:44.000Z","dependencies_parsed_at":"2023-02-09T03:45:24.574Z","dependency_job_id":"ab4e2cf5-f203-491c-8535-40f7e09f4251","html_url":"https://github.com/lukeed/sirv","commit_stats":{"total_commits":212,"total_committers":21,"mean_commits":"10.095238095238095","dds":0.1132075471698113,"last_synced_commit":"3bd2ff66ece3f44e450a48fff3ff0e41d1e56dc2"},"previous_names":[],"tags_count":59,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukeed%2Fsirv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukeed%2Fsirv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukeed%2Fsirv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukeed%2Fsirv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lukeed","download_url":"https://codeload.github.com/lukeed/sirv/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253077115,"owners_count":21850272,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T11:00:42.962Z","updated_at":"2025-05-12T13:23:30.090Z","avatar_url":"https://github.com/lukeed.png","language":"JavaScript","readme":"# sirv ![CI](https://github.com/lukeed/sirv/workflows/CI/badge.svg)\n\n\u003e An optimized middleware \u0026 CLI application for serving static files~!\n\n* **sirv**\u003cbr\u003e\n  [GitHub](https://github.com/lukeed/sirv/tree/master/packages/sirv) · [Package](https://www.npmjs.com/package/sirv) \u003cbr\u003e\n  _The core module, returning a middleware function for use in [Polka](https://github.com/lukeed/polka) \u0026 Express-like frameworks._\n\n* **sirv-cli**\u003cbr\u003e\n  [GitHub](https://github.com/lukeed/sirv/tree/master/packages/sirv-cli) · [Package](https://www.npmjs.com/package/sirv-cli) \u003cbr\u003e\n  _The standalone CLI application, allowing for instant previews of static sites._\n\n\n\n## Benchmarks\n\nAll results are taken with the following command:\n\n```sh\n$ wrk -t8 -c100 -d10s http://localhost:$PORT/\n#=\u003e wrk -t8 -c100 -d10s http://localhost:8080\n```\n\n\u003e **Note:** Expand each section to view results :thinking:\n\n\n### Programmatic\n\n\u003e Running the [`/bench`](/bench) directory with Node.js v10.13.0\n\nCompares `sirv` against `serve-static`, both of which require programmatic usage for use within existing Node servers.\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eGET \"/\" (200)\u003c/strong\u003e\u003c/summary\u003e\n\n```\nserve-static\n---\n  Thread Stats   Avg      Stdev     Max   +/- Stdev\n    Latency     8.15ms    2.13ms  41.84ms   93.56%\n    Req/Sec     1.49k   231.02     1.78k    89.50%\n  118927 requests in 10.03s, 35.61MB read\nRequests/sec:  11862.86\nTransfer/sec:      3.55MB\n\nsirv (dev: false)\n---\n  Thread Stats   Avg      Stdev     Max   +/- Stdev\n    Latency     5.78ms  495.92us   9.50ms   64.76%\n    Req/Sec     2.08k   112.73     2.42k    68.50%\n  166152 requests in 10.02s, 34.38MB read\nRequests/sec:  16586.47\nTransfer/sec:      3.43MB\n\nsirv (dev: true)\n---\n  Thread Stats   Avg      Stdev     Max   +/- Stdev\n    Latency    11.79ms    1.95ms  43.30ms   94.02%\n    Req/Sec     1.02k   121.86     1.33k    91.25%\n  81808 requests in 10.04s, 18.88MB read\nRequests/sec:   8147.26\nTransfer/sec:      1.88MB\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eGET \"/asset.js\" (200)\u003c/strong\u003e\u003c/summary\u003e\n\n```\nserve-static\n---\n  Thread Stats   Avg      Stdev     Max   +/- Stdev\n    Latency     8.12ms    1.39ms  22.96ms   92.01%\n    Req/Sec     1.49k   174.69     2.06k    73.38%\n  118413 requests in 10.02s, 34.89MB read\nRequests/sec:  11816.18\nTransfer/sec:      3.48MB\n\nsirv (dev: false)\n---\n  Thread Stats   Avg      Stdev     Max   +/- Stdev\n    Latency     5.64ms  507.55us   9.45ms   68.96%\n    Req/Sec     2.14k    86.26     2.30k    75.50%\n  170225 requests in 10.02s, 34.42MB read\nRequests/sec:  16996.46\nTransfer/sec:      3.44MB\n\nsirv (dev: true)\n---\n  Thread Stats   Avg      Stdev     Max   +/- Stdev\n    Latency     7.21ms  445.13us  12.04ms   85.69%\n    Req/Sec     1.67k    52.53     1.81k    76.88%\n  133246 requests in 10.02s, 30.12MB read\nRequests/sec:  13302.37\nTransfer/sec:      3.01MB\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eGET \"/404.css\" (404)\u003c/strong\u003e\u003c/summary\u003e\n\n```\nserve-static\n---\n  Thread Stats   Avg      Stdev     Max   +/- Stdev\n    Latency     3.49ms  814.94us  19.10ms   94.89%\n    Req/Sec     3.48k   406.87     5.59k    95.03%\n  278809 requests in 10.10s, 28.18MB read\n  Non-2xx or 3xx responses: 278809\nRequests/sec:  27593.95\nTransfer/sec:      2.79MB\n\nsirv (dev: false)\n---\n  Thread Stats   Avg      Stdev     Max   +/- Stdev\n    Latency     2.27ms  328.88us  11.86ms   90.68%\n    Req/Sec     5.32k   390.13     6.26k    93.18%\n  426843 requests in 10.10s, 43.15MB read\n  Non-2xx or 3xx responses: 426843\nRequests/sec:  42256.52\nTransfer/sec:      4.27MB\n\nsirv (dev: true)\n---\n  Thread Stats   Avg      Stdev     Max   +/- Stdev\n    Latency    24.06ms    1.63ms  52.42ms   97.02%\n    Req/Sec   500.47     29.42   640.00     71.62%\n  39989 requests in 10.04s, 4.04MB read\n  Non-2xx or 3xx responses: 39989\nRequests/sec:   3982.45\nTransfer/sec:    412.25KB\n```\n\u003c/details\u003e\n\n### CLI\n\n\u003e Each command was run independently on Node 16.13.0\n\nCompares `sirv-cli` against `http-server`, both of which are standalone CLI utilities.\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eGET \"/\" (200)\u003c/strong\u003e\u003c/summary\u003e\n\n```\nhttp-server :: Cache = YES\n  $ http-server tests/public\n---\n  Thread Stats   Avg      Stdev     Max   +/- Stdev\n    Latency    18.32ms    4.08ms  69.85ms   89.77%\n    Req/Sec   659.44     93.04   767.00     90.62%\n  52614 requests in 10.03s, 29.30MB read\nRequests/sec:   5247.35\nTransfer/sec:      2.92MB\n\n\nhttp-server :: Cache = NO\n  $ http-server tests/public -c-1\n---\n  Thread Stats   Avg      Stdev     Max   +/- Stdev\n    Latency    18.89ms    4.58ms  73.49ms   89.99%\n    Req/Sec   639.83    105.69   727.00     89.00%\n  51052 requests in 10.03s, 29.55MB read\nRequests/sec:   5091.65\nTransfer/sec:      2.95MB\n\n\nsirv-cli :: Cache = YES\n  $ sirv tests/public\n---\n  Thread Stats   Avg      Stdev     Max   +/- Stdev\n    Latency     8.19ms    6.18ms 106.92ms   95.99%\n    Req/Sec     1.59k   300.50     1.82k    89.75%\n  126322 requests in 10.02s, 60.72MB read\nRequests/sec:  12612.53\nTransfer/sec:      6.06MB\n\n\nsirv-cli :: Cache = NO\n  $ sirv tests/public --dev\n---\n  Thread Stats   Avg      Stdev     Max   +/- Stdev\n    Latency    11.32ms    1.99ms  54.04ms   94.70%\n    Req/Sec     1.07k   122.82     1.21k    90.00%\n  85069 requests in 10.02s, 42.92MB read\nRequests/sec:   8490.92\nTransfer/sec:      4.28MB\n\n\nsirv-cli :: Cache = YES :: Logs = NO\n  $ sirv tests/public --no-logs\n---\n  Thread Stats   Avg      Stdev     Max   +/- Stdev\n    Latency     7.05ms    1.78ms  33.87ms   94.72%\n    Req/Sec     1.72k   295.83     6.89k    93.38%\n  137539 requests in 10.11s, 66.11MB read\nRequests/sec:  13609.61\nTransfer/sec:      6.54MB\n\n\nsirv-cli :: Cache = NO :: Logs = NO\n  $ sirv tests/public --no-logs --dev\n---\n  Thread Stats   Avg      Stdev     Max   +/- Stdev\n    Latency     9.49ms    2.10ms  44.24ms   94.50%\n    Req/Sec     1.28k   175.71     1.45k    87.88%\n  101753 requests in 10.02s, 51.33MB read\nRequests/sec:  10157.38\nTransfer/sec:      5.12MB\n```\n\u003c/details\u003e\n\n\n## Notice\n\nThere is zero relationship between `sirv.com` and this module or its author.\n\n\n## License\n\nMIT © [Luke Edwards](https://lukeed.com)\n","funding_links":["https://github.com/sponsors/lukeed"],"categories":["Building and running in production mode","JavaScript","Packages"],"sub_categories":["Middleware","HTTP"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flukeed%2Fsirv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flukeed%2Fsirv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flukeed%2Fsirv/lists"}