Skip to content

Commit 6e6e8a4

Browse files
committed
feat: initial project — static-web server with benchmark suite
Includes the Go static file server (stdlib-first, two external deps), full test suite, and a four-way benchmark (static-web vs nginx vs bun vs caddy) driven by bombardier via Docker Compose. Bun competitor uses the native `bun ./index.html` HTML static server with --host=0.0.0.0 to bind correctly inside Docker.
0 parents  commit 6e6e8a4

38 files changed

+7956
-0
lines changed

.cz.toml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[tool.commitizen]
2+
name = "cz_conventional_commits"
3+
version_provider = "scm"
4+
tag_format = "v$version"
5+
update_changelog_on_bump = true
6+
changelog_file = "CHANGELOG.md"
7+
changelog_incremental = true
8+
major_version_zero = true
9+
annotated_tag = true
10+
bump_message = "chore(release): bump version $current_version → $new_version"

.gitignore

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Build output
2+
/bin/
3+
/dist/
4+
5+
# Test and coverage artifacts
6+
coverage.out
7+
coverage_*.out
8+
*.test
9+
10+
# macOS
11+
.DS_Store
12+
13+
# Editor
14+
.idea/
15+
.vscode/
16+
*.swp
17+
*.swo
18+
19+
# Local config (use config.toml.example as reference)
20+
config.toml
21+
22+
# Kai project memory (local only)
23+
.kai/
24+
25+
# Benchmark results (generated output)
26+
benchmark/results/

.goreleaser.yaml

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# .goreleaser.yaml — GoReleaser configuration for static-web
2+
# Docs: https://goreleaser.com/customization/
3+
4+
version: 2
5+
6+
project_name: static-web
7+
8+
before:
9+
hooks:
10+
- go mod tidy
11+
- go vet ./...
12+
13+
builds:
14+
- id: static-web
15+
main: ./cmd/static-web
16+
binary: static-web
17+
env:
18+
- CGO_ENABLED=0
19+
goos:
20+
- linux
21+
- darwin
22+
- windows
23+
goarch:
24+
- amd64
25+
- arm64
26+
# Exclude windows/arm64 — not a common target yet.
27+
ignore:
28+
- goos: windows
29+
goarch: arm64
30+
flags:
31+
- -trimpath
32+
ldflags:
33+
- -s -w
34+
- -X github.com/static-web/server/internal/version.Version={{.Version}}
35+
- -X github.com/static-web/server/internal/version.Commit={{.ShortCommit}}
36+
- -X github.com/static-web/server/internal/version.Date={{.Date}}
37+
38+
archives:
39+
- id: default
40+
# .tar.gz for Unix, .zip for Windows.
41+
format_overrides:
42+
- goos: windows
43+
format: zip
44+
name_template: "{{ .ProjectName }}_{{ .Os }}_{{ .Arch }}"
45+
files:
46+
- README.md
47+
- USER_GUIDE.md
48+
- CLI.md
49+
- config.toml.example
50+
- LICENSE*
51+
52+
checksum:
53+
name_template: "checksums.txt"
54+
algorithm: sha256
55+
56+
snapshot:
57+
version_template: "{{ .Tag }}-next"
58+
59+
changelog:
60+
sort: asc
61+
filters:
62+
exclude:
63+
- "^docs:"
64+
- "^test:"
65+
- "^chore:"
66+
- Merge pull request
67+
- Merge branch
68+
69+
release:
70+
github:
71+
owner: static-web
72+
name: server
73+
draft: false
74+
prerelease: auto
75+
name_template: "v{{ .Version }}"

0 commit comments

Comments
 (0)