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 %} +
+
+

{{ page.title }}

+

+ Browse all items in this roadmap section. For a complete list of released + features and updates, check out our changelog. +

+
+ +
+ All + Planned + In Progress + Done +
+ +
+ {% if page.extra.section == "planned" %} +
+
+ +

Planned

+
+
+
+

Pluggable Authorization

+

Role-based and policy-based access control for endpoints beyond JWT authentication.

+
+ Feature +
+
+
+
+ {% elif page.extra.section == "in-progress" %} +
+
+ +

In Progress

+
+
+
+

Background Jobs

+

Async task queue with Redis backend and rapina seed for database seeding.

+
+ Feature +
+
+
+

Schema Improvements

+

Relationship fields from foreign keys, --diff mode against live databases, and nullable Option<T> columns in generated DTOs.

+
+ Feature +
+
+
+

Redis TLS Support

+

+ TLS and client certificates for Redis cache backend. +

+
+ Feature +
+
+
+

JWKS URL Verification

+

Verify JWTs against a remote JWKS endpoint for integration with external identity providers.

+
+ Feature +
+
+
+

OpenTelemetry Tracing

+

Export traces and metrics to OpenTelemetry-compatible backends.

+
+ Feature +
+
+
+

Scalar OpenAPI UI

+

+ Built-in Scalar API documentation UI served from the framework. Currently being explored and may evolve. +

+
+ Feature +
+
+
+

GraphQL Support

+

+ Optional GraphQL layer with async-graphql integration. Under active exploration; API and scope are still being refined. +

+
+ Feature +
+
+
+
+ {% elif page.extra.section == "done" %} +
+
+ +

Done

+
+
+
+

Health Check Endpoints

+

+ Built-in health check routes for readiness and liveness probes. +

+
+ Feature +
+
+
+

Deployment Guide

+

+ Documentation for deploying Rapina apps to production. +

+
+ Docs +
+
+
+

Multipart File Uploads

+

Streaming multipart extractor with multer for file uploads and form data.

+
+ Feature +
+
+
+

Serde-based Path Extraction

+

+ Path<T> supports scalars, tuples, and structs + via a custom serde deserializer. +

+
+ v0.10.0 +
+
+
+

Database Seeding

+

+ rapina seed load, dump, and + generate for managing seed data. +

+
+ v0.10.0 +
+
+
+

Snapshot Testing

+

+ Golden-file testing with --bless mode and automatic + UUID/timestamp redaction. +

+
+ v0.10.0 +
+
+
+

RFC 7807 Problem Details

+

+ Standardized error responses with configurable base URI + and per-request scoping. +

+
+ v0.10.0 +
+
+
+

Three-layer Router

+

+ O(1) static route lookup, SmallVec path params, and + criterion benchmarks. +

+
+ v0.10.0 +
+
+
+

Compression Feature Flag

+

+ Compression gated behind compression feature, + --force flag for import, and improved codegen pluralization. +

+
+ v0.10.0 +
+
+
+

WebSocket & Relay

+

+ Real-time communication with raw WebSocket support, + pub/sub Relay system, channel handlers, and presence tracking. +

+
+ v0.9.0 +
+
+
+

Interactive Tutorial

+

+ 6-chapter browser-based tutorial with CodeMirror editor, + pattern-based validation, and simulated HTTP responses. +

+
+ v0.9.0 +
+
+
+

Cross-Platform Shutdown

+

+ Graceful shutdown now works on Windows in addition to Unix. +

+
+ v0.9.0 +
+
+
+

OpenAPI Import

+

+ rapina import openapi to generate handlers + and types from external API specs. +

+
+ v0.9.0 +
+
+
+

Endpoint Groups

+

+ Group parameter in route macros for auto-discovery: + #[get("/users", group = "/api")]. +

+
+ v0.9.0 +
+
+
+

Starter Templates

+

+ rapina new --template crud and + --template auth for faster project setup. +

+
+ v0.9.0 +
+
+
+

Response Caching

+

Built-in caching with in-memory and Redis backends.

+
+ v0.8.0 +
+
+
+

Built-in Pagination

+

+ Paginate extractor for cursor and offset pagination. +

+
+ v0.8.0 +
+
+
+

Database Import

+

+ Reverse-engineer a live database into feature modules + with rapina import database. +

+
+ v0.7.0 +
+
+
+

Route Auto-Discovery

+

+ Automatic route registration via + .discover() method. +

+
+ v0.6.0 +
+
+
+

CRUD Scaffolding

+

+ Generate complete CRUD resources with + rapina add resource. +

+
+ v0.5.0 +
+
+
+

Database Integration

+

SeaORM integration with schema! macro and connection pooling.

+
+ v0.4.0 +
+
+
+

OpenAPI Generation

+

Automatic OpenAPI spec from route definitions with breaking change detection.

+
+ v0.2.0 +
+
+
+
+ {% endif %} +
+ + +
+{% endblock %} diff --git a/docs/templates/roadmap.html b/docs/templates/roadmap.html index e4dd8376..ff473efe 100644 --- a/docs/templates/roadmap.html +++ b/docs/templates/roadmap.html @@ -1,5 +1,8 @@ -{% extends "base.html" %} {% block title %}Roadmap - Rapina{% endblock %} {% -block content %} +{% extends "base.html" %} + +{% block title %}Roadmap - Rapina{% endblock %} + +{% block content %}

Rolling Roadmap

@@ -10,6 +13,13 @@

Rolling Roadmap

+
+ All + Planned + In Progress + Done +
+
@@ -25,6 +35,10 @@

Pluggable Authorization

+ +
@@ -89,6 +103,10 @@

GraphQL Support

+ +
@@ -302,6 +320,10 @@

OpenAPI Generation

+ +