Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/luzifer/gziphttp
Very simple HTTP server for serving static files with ability for gzip compression if supported by the client
https://github.com/luzifer/gziphttp
golang gzip http server
Last synced: 7 days ago
JSON representation
Very simple HTTP server for serving static files with ability for gzip compression if supported by the client
- Host: GitHub
- URL: https://github.com/luzifer/gziphttp
- Owner: Luzifer
- License: apache-2.0
- Created: 2019-06-01T23:12:58.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-09-03T13:26:53.000Z (about 4 years ago)
- Last Synced: 2024-06-21T07:35:38.495Z (5 months ago)
- Topics: golang, gzip, http, server
- Language: Go
- Homepage:
- Size: 13.7 KB
- Stars: 5
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: History.md
- License: LICENSE
Awesome Lists containing this project
README
[![Go Report Card](https://goreportcard.com/badge/github.com/Luzifer/gziphttp)](https://goreportcard.com/report/github.com/Luzifer/gziphttp)
![](https://badges.fyi/github/license/Luzifer/gziphttp)
![](https://badges.fyi/github/downloads/Luzifer/gziphttp)
![](https://badges.fyi/github/latest-release/Luzifer/gziphttp)# Luzifer / gziphttp
Very simple HTTP server for serving static files with ability for gzip compression if supported by the client.
## Usage
```console
# gziphttp -h
Usage of gziphttp:
--listen string Port/IP to listen on (default ":3000")
--log-level string Log level (debug, info, warn, error, fatal) (default "info")
-d, --serve-dir string Directory to serve files from (default ".")
--version Prints current version and exits
```Here is an example usage inside a Docker container containing (quite large) compiled JavaScript files:
```dockerfile
FROM golang:alpine as goRUN set -ex \
&& apk add git \
&& go get -v github.com/Luzifer/gziphttpFROM node:alpine as node
COPY . /src
WORKDIR /srcRUN set -ex \
&& npm ci \
&& npm run buildFROM alpine:latest
COPY --from=go /go/bin/gziphttp /usr/local/bin/
COPY --from=node /src/dist /usr/local/share/webtotpEXPOSE 3000/tcp
CMD ["gziphttp", "-d", "/usr/local/share/webtotp"]
```In this case `gziphttp` serves compressed files to most (all modern) browsers which ensures the download size of the JavaScript files does not hurt as much as it would without gzip compression.