Skip to content

GeminiKit v0.1

Choose a tag to compare

@boek boek released this 18 Apr 17:25
· 16 commits to main since this release

GeminiKit v0.1

Initial release of GeminiKit, a Swift library for building Gemini protocol servers.

Features

  • SwiftNIO-backed server — concurrent connection handling via a multi-threaded event loop with TLS 1.2+ required by the Gemini spec
  • Declarative routing DSL — define routes using a SwiftUI-inspired @RouteBuilder result builder
  • Path matching — exact path matching with Path
  • Parameterized routes — named URL parameters (e.g. /users/:id) with Match and dynamic member lookup via Parameters
  • Input prompts — request user input mid-session with Input, including sensitive input support
  • Composable routes — build reusable route components by conforming to the Route protocol
  • Response helpers — convenience constructors for success, redirect, permanent redirect, not found, bad request, and failure responses
  • Configurable server — control host, port, thread count, request timeout, and TLS certificate paths via `Config