πΊοΈ Roadmap
Sprout's development focuses on completing core framework functionality and experimenting with system internals.
Version Historyβ
Release | Status | Highlights | Notes |
---|---|---|---|
v0.2 | β Released | AOP Core Delivered | @Before /@After /@Around , AspectJ pointcuts |
v0.3 | β Released | Middleware & Global Interceptors | Filters + Interceptors chain |
v0.4 | β Released | Data Access & Security Core | JdbcTemplate , @Transactional , AuthN/AuthZ |
v0.5 | β Released | NIO & Hybrid Server, Async WebSocket | Selector loop, OP_WRITE management, graceful close |
Current Status: v1.0 π―β
Goal: Achieve stable APIs and framework maturity β provide clear documentation and developer experience
v1.0 Features (In Progress)β
Core Stabilityβ
- β API Stabilization - Final public API design
- β Comprehensive Documentation - Complete guides and reference
- π Performance Optimization - Benchmarking and tuning
- π Error Handling Improvements - Better debugging and error messages
Developer Experienceβ
- β Clear Documentation - Architecture guides and tutorials
- β Quick Start Experience - Up and running in minutes
- π IDE Support - Improved IDE integration
Post v1.0 Roadmapβ
Lightweight ORM (v1.1-v1.2)β
Status: π Planned
While Sprout excluded ORM until v1.0, we plan to add a lightweight learning/experimental ORM afterward:
- Entity Mapping: JPA-style annotations
- Query DSL: Type-safe query construction
- Relationship Mapping: One-to-many, many-to-many relationships
- Migration Support: Schema evolution support
- Connection Pooling: Basic connection pool management
Thread Scheduling Tool (v1.3+)β
Status: π Planned
Sprout will experimentally introduce a thread scheduling tool to explore server performance and concurrency. This borrows ideas from Netty's event loop model but is designed to work with platform thread-based thread pools.
- Platform Thread Mode: Based on traditional platform threads, not virtual threads
- Event Loop-like Structure: Queue tasks and selectively distribute them like Netty's event loops
- Scheduling Policies: Experiment with various policies like round-robin, work stealing
- Abstraction API: Applications can directly choose scheduling strategies
// Future scheduling tool example
SproutScheduler scheduler = SproutSchedulers.newEventLoopStyle(threads = 4);
scheduler.submit(() -> {
System.out.println("Task executed by " + Thread.currentThread().getName());
});
This feature is primarily for learning purposes, providing an opportunity to directly work with OS-level scheduling understanding and server event processing mechanisms.
Design Principlesβ
Sprout's roadmap follows these principles:
π― Clarity Over Complexityβ
Don't include features that are hard to explain. Keep it simple and clear.
π§ Hackabilityβ
Every part of the framework should be extensible/modifiable/replaceable.
π Extensibilityβ
New features should connect naturally with existing functionality.
π Performanceβ
Minimize framework overhead. Measure and optimize only where needed.
π‘οΈ Stabilityβ
Break compatibility only in major versions. All features must be backed by tests.
Timelineβ
This roadmap is goal-oriented and may change based on community feedback, technical challenges, and resource availability.
2025 Q4: v1.0 release β Stable APIs and documentation
2026 Q1-Q2: Lightweight ORM development (v1.1-v1.2)
2026+: Thread Scheduling Tool (v1.3+)