Kottpd Development Roadmap

October 29, 2025 ยท View on GitHub

Vision

Kottpd aims to be a lightweight, pure Kotlin HTTP server framework that is easy to use, performant, and suitable for building microservices and REST APIs.

Current State (v0.2.2)

Strengths

  • Minimal footprint: ~316 lines of core code
  • Pure Kotlin: No external framework dependencies
  • Simple API: Easy to understand and use
  • HTTP/HTTPS support: Built-in SSL/TLS support
  • Routing: Path-based and regex-based routing
  • Filters: Before/after request filters
  • Exception handling: Custom exception handlers
  • Static files: Built-in static file serving

Areas for Improvement

  • Testing: Minimal test coverage
  • Documentation: Limited examples and API documentation
  • Performance: Not benchmarked or optimized
  • Features: Missing common REST framework features
  • Tooling: Outdated dependencies and build tools

Short-term Goals (Next 3-6 months)

1. Testing & Quality (Priority: High)

  • Add comprehensive unit tests for all components
  • Add integration tests for HTTP scenarios
  • Add performance benchmarks
  • Set up code coverage reporting (JaCoCo)
  • Add mutation testing (PIT)
  • Target: 80%+ code coverage

2. Documentation (Priority: High)

  • Expand README with comprehensive examples
  • Add API documentation for all public methods
  • Create getting started guide
  • Add architecture documentation
  • Create comparison with other Kotlin frameworks
  • Add troubleshooting guide
  • Document security best practices

3. Dependency Updates (Priority: Medium)

  • Update Kotlin to latest stable version (2.0.x)
  • Update Dokka to match Kotlin version
  • Migrate from JUnit 4 to JUnit 5
  • Update GitHub Actions to latest versions
  • Review and update Maven plugins

4. Code Quality (Priority: Medium)

  • Add ktlint for code formatting
  • Add detekt for static analysis
  • Fix Dokka compatibility warnings
  • Add EditorConfig file
  • Improve error handling and logging
  • Add validation for inputs

Medium-term Goals (6-12 months)

5. Feature Enhancements (Priority: Medium)

  • JSON serialization/deserialization support
  • Request/response interceptors
  • CORS support
  • Request body parsing (JSON, form data, multipart)
  • Response compression (gzip, deflate)
  • Content negotiation
  • Cookie support
  • Session management
  • WebSocket support
  • HTTP/2 support

6. Developer Experience (Priority: Medium)

  • Add Kotlin DSL for route configuration
  • Improve error messages
  • Add request/response logging middleware
  • Add development mode with auto-reload
  • Create starter templates/examples
  • Add metrics and monitoring support
  • Create CLI tool for project scaffolding

7. Performance & Scalability (Priority: Low-Medium)

  • Benchmark against similar frameworks (Ktor, Javalin)
  • Optimize thread pool configuration
  • Add connection pooling
  • Implement request timeout handling
  • Add rate limiting support
  • Optimize memory usage
  • Support async/coroutines for handlers

8. Security (Priority: High)

  • Add security headers by default
  • Implement CSRF protection
  • Add input validation framework
  • Support authentication mechanisms (Basic, Bearer, JWT)
  • Add HTTPS redirect option
  • Implement security audit logging
  • Add SQL injection prevention for examples

Long-term Goals (12+ months)

9. Ecosystem & Integration (Priority: Low)

  • Create Spring Boot starter
  • Add OpenAPI/Swagger support
  • Support for common templating engines
  • Database integration helpers
  • Cache integration (Redis, Memcached)
  • Message queue integration
  • Cloud platform deployment guides

10. Community & Adoption (Priority: Medium)

  • Create contribution guidelines
  • Add issue templates
  • Set up discussions forum
  • Create community examples repository
  • Regular blog posts/tutorials
  • Conference talks/presentations
  • Build showcase of projects using Kottpd

11. Advanced Features (Priority: Low)

  • GraphQL support
  • Server-Sent Events (SSE)
  • gRPC support
  • Multi-tenant support
  • Plugin system
  • Admin UI for monitoring

Migration & Breaking Changes

Planned for v0.3.0

  • Migrate to JUnit 5
  • Update minimum Java version to 11 (current baseline)
  • Modernize API with Kotlin coroutines

Planned for v1.0.0

  • Stabilize public API
  • Comprehensive documentation
  • Production-ready security defaults
  • Performance benchmarks published
  • Migration guide from v0.x

Success Metrics

Technical Metrics

  • Code coverage: >80%
  • Build time: <2 minutes
  • Startup time: <1 second
  • Request latency: <10ms (p99)
  • Memory footprint: <50MB (base)

Community Metrics

  • GitHub stars: 500+ (currently ~200)
  • Active contributors: 10+
  • Monthly downloads: 1000+
  • Documentation coverage: 100%
  • Issues response time: <48 hours

Contributing

We welcome contributions in all these areas! Please see CONTRIBUTING.md for guidelines.

Release Schedule

  • v0.2.3: Bug fixes and dependency updates (Next release)
  • v0.3.0: Testing infrastructure and JUnit 5 migration (Q1 2026)
  • v0.4.0: Feature enhancements (JSON, CORS, etc.) (Q2 2026)
  • v0.5.0: Performance optimizations and async support (Q3 2026)
  • v1.0.0: Stable release with comprehensive features (Q4 2026)

Research & Exploration

Areas to investigate:

  • Project Loom (virtual threads) integration
  • Kotlin Multiplatform support
  • GraalVM native image support
  • Reactive programming patterns
  • Modern HTTP/3 support (QUIC)

Last updated: 2025-10-29 Maintainer: Andrei Chernyshev (@gimlet2)