diff --git a/docs/content/roadmap.md b/docs/content/roadmap/_index.md similarity index 100% rename from docs/content/roadmap.md rename to docs/content/roadmap/_index.md diff --git a/docs/content/roadmap/done.md b/docs/content/roadmap/done.md new file mode 100644 index 00000000..f36176b7 --- /dev/null +++ b/docs/content/roadmap/done.md @@ -0,0 +1,6 @@ ++++ +title = "Completed Roadmap" +template = "roadmap-section.html" +[extra] +section = "done" ++++ diff --git a/docs/content/roadmap/in-progress.md b/docs/content/roadmap/in-progress.md new file mode 100644 index 00000000..b1685ae6 --- /dev/null +++ b/docs/content/roadmap/in-progress.md @@ -0,0 +1,6 @@ ++++ +title = "In Progress Roadmap" +template = "roadmap-section.html" +[extra] +section = "in-progress" ++++ diff --git a/docs/content/roadmap/planned.md b/docs/content/roadmap/planned.md new file mode 100644 index 00000000..c7aa02f2 --- /dev/null +++ b/docs/content/roadmap/planned.md @@ -0,0 +1,6 @@ ++++ +title = "Planned Roadmap" +template = "roadmap-section.html" +[extra] +section = "planned" ++++ diff --git a/docs/sass/style.scss b/docs/sass/style.scss index 1a0589e8..a9b71cc3 100644 --- a/docs/sass/style.scss +++ b/docs/sass/style.scss @@ -127,6 +127,48 @@ pre { } } +// ============================================================================= +// ROADMAP TABS & LINKS +// ============================================================================= + +.roadmap-tabs { + margin: 1.5rem 0; + display: inline-flex; + gap: 0.5rem; + padding: 0.25rem; + border-radius: 999px; + background-color: var(--bg-tertiary); +} + +.roadmap-tab { + padding: 0.4rem 0.9rem; + border-radius: 999px; + font-size: 0.9rem; + font-weight: 500; + color: var(--text-muted); + background: transparent; + border: 1px solid transparent; +} + +.roadmap-tab:hover { + color: var(--text); +} + +.roadmap-tab.active { + background-color: var(--bg); + color: var(--text); + border-color: var(--border); +} + +.column-footer { + margin-top: 1rem; +} + +.roadmap-see-all { + font-size: 0.9rem; + font-weight: 500; +} + // ============================================================================= // NAVBAR // ============================================================================= @@ -2476,10 +2518,10 @@ pre { .roadmap-board { display: grid; - grid-template-columns: repeat(3, 1fr); + grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.5rem; - @media (max-width: 900px) { + @media (max-width: 700px) { grid-template-columns: 1fr; } } diff --git a/docs/templates/roadmap-section.html b/docs/templates/roadmap-section.html new file mode 100644 index 00000000..e170e657 --- /dev/null +++ b/docs/templates/roadmap-section.html @@ -0,0 +1,336 @@ +{% extends "base.html" %} + +{% block title %}Roadmap - {{ page.title }}{% endblock %} + +{% block content %} +
+ Browse all items in this roadmap section. For a complete list of released + features and updates, check out our changelog. +
+Role-based and policy-based access control for endpoints beyond JWT authentication.
+ +Async task queue with Redis backend and rapina seed for database seeding.
Relationship fields from foreign keys, --diff mode against live databases, and nullable Option<T> columns in generated DTOs.
+ TLS and client certificates for Redis cache backend. +
+ +Verify JWTs against a remote JWKS endpoint for integration with external identity providers.
+ +Export traces and metrics to OpenTelemetry-compatible backends.
+ ++ Built-in Scalar API documentation UI served from the framework. Currently being explored and may evolve. +
+ ++ Optional GraphQL layer with async-graphql integration. Under active exploration; API and scope are still being refined. +
+ ++ Built-in health check routes for readiness and liveness probes. +
+ ++ Documentation for deploying Rapina apps to production. +
+ +Streaming multipart extractor with multer for file uploads and form data.
+ Path<T> supports scalars, tuples, and structs
+ via a custom serde deserializer.
+
+ rapina seed load, dump, and
+ generate for managing seed data.
+
+ Golden-file testing with --bless mode and automatic
+ UUID/timestamp redaction.
+
+ Standardized error responses with configurable base URI + and per-request scoping. +
+ ++ O(1) static route lookup, SmallVec path params, and + criterion benchmarks. +
+ +
+ Compression gated behind compression feature,
+ --force flag for import, and improved codegen pluralization.
+
+ Real-time communication with raw WebSocket support, + pub/sub Relay system, channel handlers, and presence tracking. +
+ ++ 6-chapter browser-based tutorial with CodeMirror editor, + pattern-based validation, and simulated HTTP responses. +
+ ++ Graceful shutdown now works on Windows in addition to Unix. +
+ +
+ rapina import openapi to generate handlers
+ and types from external API specs.
+
+ Group parameter in route macros for auto-discovery:
+ #[get("/users", group = "/api")].
+
+ rapina new --template crud and
+ --template auth for faster project setup.
+
Built-in caching with in-memory and Redis backends.
+ +
+ Paginate extractor for cursor and offset pagination.
+
+ Reverse-engineer a live database into feature modules
+ with rapina import database.
+
+ Automatic route registration via
+ .discover() method.
+
+ Generate complete CRUD resources with
+ rapina add resource.
+
SeaORM integration with schema! macro and connection pooling.
Automatic OpenAPI spec from route definitions with breaking change detection.
+ +