antanst 2ead66f012 Refactor Gemini protocol implementation and improve server architecture
- Move gemini URL parsing from common/ to gemini/ package
- Add structured status codes in gemini/status_codes.go
- Improve error handling with proper Gemini status codes
- Update configuration field naming (Listen -> ListenAddr)
- Add UTF-8 validation for URLs
- Enhance security with better path validation
- Add CLAUDE.md for development guidance
- Include example content in srv/ directory
- Update build system to use standard shell
2025-06-06 15:02:25 +03:00
2025-02-03 13:12:54 +02:00
2025-02-03 13:12:54 +02:00
2025-05-26 16:46:38 +03:00
2025-05-26 16:51:01 +03:00
2025-02-03 13:12:54 +02:00
2025-05-26 16:50:26 +03:00

  __ _  ___ _ __ ___  ___  ___ _ ____   _____ 
 / _` |/ _ | '_ ` _ \/ __|/ _ | '__\ \ / / _ \
| (_| |  __| | | | | \__ |  __| |   \ V |  __/
 \__, |\___|_| |_| |_|___/\___|_|    \_/ \___|
 |___/          

Gemserve is a simple Gemini server written in Go.

Run tests and build:

make test #run tests only
make #run tests and build

Run:

./dist/gemserve

You'll need TLS keys, you can use certs/generate.sh for quick generation.

TODO

  • Make TLS keys path configurable
  • Fix slowloris (proper response timeouts)
Description
A simple Gemini server written in Go.
Readme ISC 180 KiB
Languages
Go 96.4%
Makefile 1.6%
Shell 1.3%
Dockerfile 0.7%