From db683c02f18cf18b558c328620df57d0b50d3b82 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 28 Jan 2026 03:14:55 +0000 Subject: [PATCH 1/5] Initial plan From 6bd5f5ed44ebc5ee22d7831ea84c88fa4cd9dcb6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 28 Jan 2026 03:24:12 +0000 Subject: [PATCH 2/5] Document dependency reduction plan Co-authored-by: Tuntii <121901995+Tuntii@users.noreply.github.com> --- docs/PHILOSOPHY.md | 17 +++++++++++++++++ docs/README.md | 4 ++++ 2 files changed, 21 insertions(+) diff --git a/docs/PHILOSOPHY.md b/docs/PHILOSOPHY.md index c9d51aa..2efd90c 100644 --- a/docs/PHILOSOPHY.md +++ b/docs/PHILOSOPHY.md @@ -105,6 +105,23 @@ validator = "0.16" 2. We bump `rustapi-rs` to `0.2.0` 3. **Your code stays exactly the same** — just update the version +### External Dependency Reduction (Dış Bağımlılıkları Azaltma) + +RustAPI already hides external crates behind internal adapters. To reduce dependency debt, we focus on components with a stable spec and a small surface area, while keeping the public API unchanged. The playbook is: + +1. Wrap dependencies with internal traits/types so behavior is defined by RustAPI. +2. Add contract tests to lock in behavior before replacing internals. +3. Ship replacements behind feature flags, then flip defaults. + +Good candidates for in-house implementations: +- Validation (`validator`) → native validation engine (already planned). +- Router (`matchit`) → internal radix tree with RustAPI-specific optimizations. +- OpenAPI (`utoipa`) → native schema generator to control outputs. +- TOON format (`toon-format`) → move core format logic into `rustapi-toon`. +- Template engine (`tera`) → minimal renderer for basic HTML views. + +Not near-term targets: `tokio`, `hyper`, `tower` — large, security-sensitive, and foundational crates best kept upstream for now. + ### 4. 🎁 Batteries Included (But Optional) **Everything you need, nothing you don't.** diff --git a/docs/README.md b/docs/README.md index 33d68da..be83848 100644 --- a/docs/README.md +++ b/docs/README.md @@ -28,6 +28,10 @@ RustAPI is an ergonomic web framework for Rust, inspired by FastAPI's developer RustAPI provides a stable, ergonomic public API. Internal dependencies (`hyper`, `tokio`, `validator`) are implementation details that can be upgraded without breaking your code. +### External Dependency Plan + +To reduce external dependency debt (dış borç), we prioritize replacing crates with stable specs and small surfaces while keeping the public API unchanged. Candidate areas for RustAPI-owned implementations are validation, routing, OpenAPI generation, and the TOON format. Foundational runtime and HTTP crates (`tokio`, `hyper`, `tower`) remain external for stability and security. + ## Getting Started ```toml From 3e9ef15be79fdb4afddf9795d5c9a3a08f4d93e3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 28 Jan 2026 03:25:17 +0000 Subject: [PATCH 3/5] Refine dependency wording Co-authored-by: Tuntii <121901995+Tuntii@users.noreply.github.com> --- docs/PHILOSOPHY.md | 4 ++-- docs/README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/PHILOSOPHY.md b/docs/PHILOSOPHY.md index 2efd90c..6b62824 100644 --- a/docs/PHILOSOPHY.md +++ b/docs/PHILOSOPHY.md @@ -105,9 +105,9 @@ validator = "0.16" 2. We bump `rustapi-rs` to `0.2.0` 3. **Your code stays exactly the same** — just update the version -### External Dependency Reduction (Dış Bağımlılıkları Azaltma) +### External Dependency Reduction (Harici Bağımlılıkları Azaltma) -RustAPI already hides external crates behind internal adapters. To reduce dependency debt, we focus on components with a stable spec and a small surface area, while keeping the public API unchanged. The playbook is: +RustAPI already hides external crates behind internal adapters. To reduce dependency debt, we focus on components, each with a stable spec and a small surface area, while keeping the public API unchanged. The playbook is: 1. Wrap dependencies with internal traits/types so behavior is defined by RustAPI. 2. Add contract tests to lock in behavior before replacing internals. diff --git a/docs/README.md b/docs/README.md index be83848..6f91951 100644 --- a/docs/README.md +++ b/docs/README.md @@ -30,7 +30,7 @@ RustAPI provides a stable, ergonomic public API. Internal dependencies (`hyper`, ### External Dependency Plan -To reduce external dependency debt (dış borç), we prioritize replacing crates with stable specs and small surfaces while keeping the public API unchanged. Candidate areas for RustAPI-owned implementations are validation, routing, OpenAPI generation, and the TOON format. Foundational runtime and HTTP crates (`tokio`, `hyper`, `tower`) remain external for stability and security. +To reduce external dependency debt (bağımlılık borcu), we prioritize replacing crates with stable specs and small surfaces, while keeping the public API unchanged. Candidate areas for RustAPI-owned implementations are validation, routing, OpenAPI generation, and the TOON format. Foundational runtime and HTTP crates (`tokio`, `hyper`, `tower`) remain external for stability and security. ## Getting Started From a70333eedc54bd7afe00348da5a4d2c16b00e76c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 28 Jan 2026 03:26:43 +0000 Subject: [PATCH 4/5] Clarify dependency replacement target Co-authored-by: Tuntii <121901995+Tuntii@users.noreply.github.com> --- docs/PHILOSOPHY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/PHILOSOPHY.md b/docs/PHILOSOPHY.md index 6b62824..96a8f51 100644 --- a/docs/PHILOSOPHY.md +++ b/docs/PHILOSOPHY.md @@ -107,7 +107,7 @@ validator = "0.16" ### External Dependency Reduction (Harici Bağımlılıkları Azaltma) -RustAPI already hides external crates behind internal adapters. To reduce dependency debt, we focus on components, each with a stable spec and a small surface area, while keeping the public API unchanged. The playbook is: +RustAPI already hides external crates behind internal adapters. To reduce dependency debt, we target components with stable specs and small surface areas for replacement, while keeping the public API unchanged. The playbook is: 1. Wrap dependencies with internal traits/types so behavior is defined by RustAPI. 2. Add contract tests to lock in behavior before replacing internals. From 84a82d30a194caae7a8e6c67857002bb915f750a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 28 Jan 2026 03:29:12 +0000 Subject: [PATCH 5/5] Align dependency docs with changelog Co-authored-by: Tuntii <121901995+Tuntii@users.noreply.github.com> --- docs/PHILOSOPHY.md | 3 +-- docs/README.md | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/docs/PHILOSOPHY.md b/docs/PHILOSOPHY.md index 96a8f51..bdca067 100644 --- a/docs/PHILOSOPHY.md +++ b/docs/PHILOSOPHY.md @@ -96,7 +96,7 @@ validator = "0.16" |-----------|----------------|--------------| | HTTP Server | `hyper 1.x` | `hyper 2.x`, `h3` (HTTP/3) | | Async Runtime | `tokio` | `smol`, `async-std` (future) | -| Validation | `validator` | Custom engine (planned for v1.0) | +| Validation | `rustapi-validate` | Custom engine (available) | | Router | `matchit` | Custom radix tree | | OpenAPI | `utoipa` | Native implementation | @@ -114,7 +114,6 @@ RustAPI already hides external crates behind internal adapters. To reduce depend 3. Ship replacements behind feature flags, then flip defaults. Good candidates for in-house implementations: -- Validation (`validator`) → native validation engine (already planned). - Router (`matchit`) → internal radix tree with RustAPI-specific optimizations. - OpenAPI (`utoipa`) → native schema generator to control outputs. - TOON format (`toon-format`) → move core format logic into `rustapi-toon`. diff --git a/docs/README.md b/docs/README.md index 6f91951..02b1092 100644 --- a/docs/README.md +++ b/docs/README.md @@ -26,11 +26,11 @@ RustAPI is an ergonomic web framework for Rust, inspired by FastAPI's developer > *"API surface is ours, engines can change."* -RustAPI provides a stable, ergonomic public API. Internal dependencies (`hyper`, `tokio`, `validator`) are implementation details that can be upgraded without breaking your code. +RustAPI provides a stable, ergonomic public API. Internal dependencies (e.g., `hyper`, `tokio`, `matchit`) are implementation details that can be upgraded without breaking your code. ### External Dependency Plan -To reduce external dependency debt (bağımlılık borcu), we prioritize replacing crates with stable specs and small surfaces, while keeping the public API unchanged. Candidate areas for RustAPI-owned implementations are validation, routing, OpenAPI generation, and the TOON format. Foundational runtime and HTTP crates (`tokio`, `hyper`, `tower`) remain external for stability and security. +To reduce external dependency debt, we prioritize replacing crates with stable specs and small surfaces, while keeping the public API unchanged. Validation already uses the native `rustapi-validate` engine; candidates for further RustAPI-owned implementations are routing, OpenAPI generation, the TOON format, and template rendering. Foundational runtime and HTTP crates (`tokio`, `hyper`, `tower`) remain external for stability and security. ## Getting Started