vibes-plug 1.0.0 → 2.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/.claude/rules/vibes-plug-core.md +32 -0
  2. package/.cursor/rules/vibes-plug-core.mdc +51 -0
  3. package/.cursorrules +42 -0
  4. package/AGENTS.md +96 -0
  5. package/BLUEPRINT.md +309 -125
  6. package/CHANGELOG.md +183 -1
  7. package/CLAUDE.md +70 -0
  8. package/LICENSE +1 -1
  9. package/README.md +641 -263
  10. package/index.js +19 -0
  11. package/package.json +61 -25
  12. package/plugin.json +24 -7
  13. package/scripts/generate_swarm_gif.py +295 -0
  14. package/scripts/install.js +201 -0
  15. package/skills/accessibility-testing-expert/SKILL.md +116 -0
  16. package/skills/ai-cost-token-optimizer/SKILL.md +82 -0
  17. package/skills/ai-evals-benchmark-expert/SKILL.md +188 -0
  18. package/skills/ai-llm-integration-expert/SKILL.md +147 -122
  19. package/skills/ai-media-generation-expert/SKILL.md +172 -0
  20. package/skills/ai-prompt-engineering-expert/SKILL.md +84 -0
  21. package/skills/angular-expert/SKILL.md +148 -0
  22. package/skills/api-design-expert/SKILL.md +316 -309
  23. package/skills/api-gateway-proxy-expert/SKILL.md +81 -0
  24. package/skills/app-analyzer-optimizer/SKILL.md +195 -188
  25. package/skills/apple-ecosystem-expert/SKILL.md +145 -0
  26. package/skills/{asisten_ramah → asisten-ramah}/SKILL.md +7 -1
  27. package/skills/astro-framework-expert/SKILL.md +200 -0
  28. package/skills/async-queue-temporal-expert/SKILL.md +240 -0
  29. package/skills/authentication-identity-expert/SKILL.md +279 -45
  30. package/skills/auto-doc-updater/SKILL.md +219 -203
  31. package/skills/autonomous-chaos-monkey/SKILL.md +63 -0
  32. package/skills/autonomous-red-teamer/SKILL.md +203 -0
  33. package/skills/autonomous-tdd-debugger/SKILL.md +71 -0
  34. package/skills/background-jobs-queue-expert/SKILL.md +235 -0
  35. package/skills/biome-linter-formatter-expert/SKILL.md +89 -0
  36. package/skills/blockchain-web3-expert/SKILL.md +115 -0
  37. package/skills/bootstrap-to-modern/SKILL.md +93 -86
  38. package/skills/brainstorming/SKILL.md +381 -353
  39. package/skills/browser-automation-expert/SKILL.md +222 -0
  40. package/skills/bun-runtime-expert/SKILL.md +7 -1
  41. package/skills/chatbot-messaging-expert/SKILL.md +114 -0
  42. package/skills/ci-cd-devops-architect/SKILL.md +81 -45
  43. package/skills/cloud-hosting-expert/SKILL.md +249 -243
  44. package/skills/coderabbit/SKILL.md +197 -191
  45. package/skills/compliance-gdpr-privacy-expert/SKILL.md +85 -0
  46. package/skills/cron-scheduler-expert/SKILL.md +304 -0
  47. package/skills/data-pipeline-etl-expert/SKILL.md +84 -0
  48. package/skills/data-telemetry-expert/SKILL.md +218 -212
  49. package/skills/data-visualization-expert/SKILL.md +154 -0
  50. package/skills/database-migration-versioning-expert/SKILL.md +90 -0
  51. package/skills/database-orm-expert/SKILL.md +303 -293
  52. package/skills/dependency-upgrade-migrator/SKILL.md +301 -0
  53. package/skills/design-system-architect/SKILL.md +278 -242
  54. package/skills/desktop-electron-expert/SKILL.md +128 -0
  55. package/skills/documentation-site-expert/SKILL.md +59 -0
  56. package/skills/doku-mcp-server/SKILL.md +257 -0
  57. package/skills/doku-payment-gateway/SKILL.md +233 -0
  58. package/skills/domain-driven-design-expert/SKILL.md +82 -0
  59. package/skills/e2e-testing-expert/SKILL.md +320 -314
  60. package/skills/ecommerce-expert/SKILL.md +87 -0
  61. package/skills/edge-serverless-db-expert/SKILL.md +99 -0
  62. package/skills/email-notification-expert/SKILL.md +368 -0
  63. package/skills/error-resilience-expert/SKILL.md +486 -0
  64. package/skills/event-driven-architect/SKILL.md +86 -80
  65. package/skills/feature-flag-analytics-expert/SKILL.md +66 -0
  66. package/skills/file-upload-media-expert/SKILL.md +437 -0
  67. package/skills/firebase-security-expert/SKILL.md +7 -1
  68. package/skills/form-validation-expert/SKILL.md +407 -0
  69. package/skills/fullstack-expert/SKILL.md +260 -201
  70. package/skills/fullstack-expert/references/api_design_guide.md +466 -466
  71. package/skills/fullstack-expert/references/multi_language_backend.md +528 -528
  72. package/skills/fullstack-expert/scripts/api_contract_validator.py +253 -253
  73. package/skills/fullstack-expert/scripts/architecture_analyzer.py +326 -326
  74. package/skills/gemini-agent-booster/SKILL.md +142 -104
  75. package/skills/geospatial-maps-expert/SKILL.md +80 -0
  76. package/skills/global-a11y-i18n-expert/SKILL.md +86 -80
  77. package/skills/glsl-shader-expert/SKILL.md +107 -0
  78. package/skills/go-programming-expert/SKILL.md +300 -294
  79. package/skills/graph-rag-knowledge-expert/SKILL.md +159 -0
  80. package/skills/graphql-apollo-expert/SKILL.md +114 -0
  81. package/skills/headless-cms-expert/SKILL.md +181 -0
  82. package/skills/hig/SKILL.md +193 -187
  83. package/skills/js-backend-expert/SKILL.md +218 -191
  84. package/skills/legacy-code-translator/SKILL.md +71 -0
  85. package/skills/local-slm-edge-ai-expert/SKILL.md +167 -0
  86. package/skills/logging-error-tracking-expert/SKILL.md +344 -0
  87. package/skills/mcp-client-orchestrator/SKILL.md +76 -0
  88. package/skills/mcp-server-architect/SKILL.md +226 -126
  89. package/skills/micro-frontend-architect/SKILL.md +112 -0
  90. package/skills/mobile-expo-expert/SKILL.md +191 -185
  91. package/skills/mobile-push-notification-expert/SKILL.md +71 -0
  92. package/skills/modern-css-native-expert/SKILL.md +189 -0
  93. package/skills/monday-design-aesthetic/SKILL.md +72 -66
  94. package/skills/monorepo-architect/SKILL.md +232 -226
  95. package/skills/mpa-orchestrator/SKILL.md +120 -101
  96. package/skills/multi-agent-orchestration/SKILL.md +173 -153
  97. package/skills/multiple-entry-points/SKILL.md +91 -55
  98. package/skills/mvc-expert/SKILL.md +237 -231
  99. package/skills/n8n-automation-expert/SKILL.md +89 -0
  100. package/skills/nextjs-app-router-expert/SKILL.md +148 -0
  101. package/skills/openapi-swagger-codegen-expert/SKILL.md +67 -0
  102. package/skills/payment-gateway-expert/SKILL.md +129 -45
  103. package/skills/pdf-document-generation-expert/SKILL.md +91 -0
  104. package/skills/performance-web-vitals/SKILL.md +337 -331
  105. package/skills/post-quantum-crypto-migrator/SKILL.md +57 -0
  106. package/skills/prd-architect/SKILL.md +206 -190
  107. package/skills/proactive-background-watcher/SKILL.md +68 -0
  108. package/skills/production-ready-hardener/PRODUCTION_READINESS_REPORT.md +67 -0
  109. package/skills/production-ready-hardener/SKILL.md +461 -468
  110. package/skills/production-ready-hardener/references/production_checklist.md +161 -161
  111. package/skills/production-ready-hardener/scripts/production_readiness_scanner.py +881 -875
  112. package/skills/project-context-mapper/SKILL.md +85 -0
  113. package/skills/pwa-offline-first-expert/SKILL.md +185 -0
  114. package/skills/python-programming-expert/SKILL.md +407 -270
  115. package/skills/rate-limit-abuse-prevention/SKILL.md +377 -0
  116. package/skills/realtime-collaboration-expert/SKILL.md +99 -45
  117. package/skills/rich-text-editor-expert/SKILL.md +177 -0
  118. package/skills/rust-programming-expert/SKILL.md +240 -234
  119. package/skills/saas-billing/SKILL.md +382 -376
  120. package/skills/saas-multi-tenant/SKILL.md +256 -236
  121. package/skills/saas-mvp-launcher/SKILL.md +30 -1
  122. package/skills/saas-transformer/SKILL.md +499 -445
  123. package/skills/saas-transformer/references/billing_integration_guide.md +401 -401
  124. package/skills/saas-transformer/references/feature_gating_patterns.md +137 -137
  125. package/skills/saas-transformer/references/saas_transformation_checklist.md +121 -121
  126. package/skills/saas-transformer/scripts/saas_transformation_scanner.py +39 -29
  127. package/skills/scalability-clean-code/SKILL.md +234 -228
  128. package/skills/search-engine-expert/SKILL.md +89 -0
  129. package/skills/secure-fuzz-testing/SKILL.md +7 -1
  130. package/skills/self-evolving-memory-graph/SKILL.md +91 -0
  131. package/skills/self-healing-cloud-orchestrator/SKILL.md +57 -0
  132. package/skills/senior-frontend/SKILL.md +85 -105
  133. package/skills/seo/SKILL.md +258 -224
  134. package/skills/session-context-loader/SKILL.md +83 -0
  135. package/skills/session-handoff-resume/SKILL.md +163 -157
  136. package/skills/{skill_baru → skill-baru}/SKILL.md +177 -146
  137. package/skills/solidjs-expert/SKILL.md +80 -0
  138. package/skills/spa-orchestrator/SKILL.md +306 -287
  139. package/skills/sse-websocket-streaming-expert/SKILL.md +93 -0
  140. package/skills/state-management-expert/SKILL.md +277 -271
  141. package/skills/supabase-migration/SKILL.md +47 -1
  142. package/skills/supabase-security-expert/SKILL.md +248 -242
  143. package/skills/svelte-sveltekit-expert/SKILL.md +91 -0
  144. package/skills/svg-animation-motion-expert/SKILL.md +115 -0
  145. package/skills/tailwind-expert/SKILL.md +139 -187
  146. package/skills/tanstack-query-expert/SKILL.md +204 -198
  147. package/skills/tauri-expert/SKILL.md +7 -1
  148. package/skills/token-saver/SKILL.md +118 -110
  149. package/skills/typescript-expert/SKILL.md +329 -278
  150. package/skills/ui-components-expert/SKILL.md +166 -63
  151. package/skills/ui-ux-pro-max/SKILL.md +221 -200
  152. package/skills/vector-db-rag-expert/SKILL.md +208 -0
  153. package/skills/vibe-code-gardener/SKILL.md +180 -172
  154. package/skills/visual-qa-vision-agent/SKILL.md +71 -0
  155. package/skills/voice-ai-realtime-agent/SKILL.md +202 -0
  156. package/skills/vue-frontend-expert/SKILL.md +132 -0
  157. package/skills/wasm-edge-computing-expert/SKILL.md +97 -0
  158. package/skills/web-3d-graphics-expert/SKILL.md +137 -0
  159. package/skills/web-game-engine-expert/SKILL.md +102 -0
  160. package/skills/web-scraper/SKILL.md +98 -146
  161. package/skills/website-design-cloner/SKILL.md +180 -0
  162. package/skills/webxr-ar-vr-expert/SKILL.md +123 -0
  163. package/skills/wordpress-headless-expert/SKILL.md +144 -0
  164. package/skills/zero-to-prod-orchestrator/SKILL.md +231 -180
  165. package/skills/zero-trust-secret-vault/SKILL.md +88 -0
  166. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  167. package/CONTRIBUTING.md +0 -199
  168. package/SECURITY.md +0 -21
  169. package/banner.png +0 -0
  170. package/skills/senior-fullstack/SKILL.md +0 -167
  171. package/skills/senior-fullstack/references/architecture_patterns.md +0 -160
  172. package/skills/senior-fullstack/references/development_workflows.md +0 -222
  173. package/skills/senior-fullstack/references/tech_stack_guide.md +0 -190
  174. package/skills/senior-fullstack/scripts/code_quality_analyzer.py +0 -114
  175. package/skills/senior-fullstack/scripts/fullstack_scaffolder.py +0 -114
  176. package/skills/senior-fullstack/scripts/project_scaffolder.py +0 -114
  177. package/skills/seo-aeo-landing-page-writer/SKILL.md +0 -97
  178. package/skills/seo-geo/SKILL.md +0 -188
  179. package/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-310.pyc +0 -0
  180. package/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-312.pyc +0 -0
  181. package/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-310.pyc +0 -0
  182. package/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-312.pyc +0 -0
  183. package/skills/ui_ux_expert/SKILL.md +0 -114
@@ -1,235 +1,241 @@
1
- ---
2
- name: rust-programming-expert
3
- description: "Expert-level skill for Rust programming (Rust 2024 / v1.85+). Covers memory safety, async, Axum/SQLx, CLI, and optimization in English and Indonesian."
1
+ ---
2
+ name: rust-programming-expert
3
+ description: "Expert-level skill for Rust programming (Rust 2024 / v1.85+). Covers memory safety, async, Axum/SQLx, CLI, and optimization in English and Indonesian."
4
4
  author: "Roedy Rustam"
5
- ---
6
-
7
- # Rust Programming Expert (2024 Edition / v1.88+)
8
-
9
- [English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
10
-
11
- ---
12
-
13
- <a name="english"></a>
14
- ## English
15
-
16
- ### Description
17
- Expert-level Rust development for building memory-safe, high-performance systems, APIs, CLI tools, and WebAssembly. Covers the **Rust 2024 edition**, async/await with Tokio, Axum 0.8 web framework, SQLx for async database access, and modern Rust idioms.
18
-
19
- ### Trigger Conditions
20
- - Writing systems-level code requiring memory safety and zero-cost abstractions.
21
- - Building high-performance HTTP APIs with **Axum 0.8**.
22
- - Implementing async services with **Tokio** runtime.
23
- - Interacting with databases using **SQLx** or **SeaORM**.
24
- - Building CLI tools with **Clap v4**.
25
- - Compiling to **WebAssembly (WASM)** for browser or edge deployment.
26
- - Writing Rust for **Tauri v2** desktop application backends.
27
-
28
- ### Rust 2024 Edition Highlights
29
- The Rust 2024 edition (stabilized in 1.85) introduces:
30
- - **`gen` blocks**: Generators for lazy sequence production.
31
- - **Lifetime capture rules**: More precise lifetime inference in `impl Trait`.
32
- - **Unsafe extern blocks**: Clearer unsafe boundary declarations.
33
- - **`if let` chains**: `if let Some(x) = opt && x > 0` now works cleanly.
34
- - **`async fn` in traits**: Now stable — no more `async-trait` macro needed.
35
-
36
- ### Async `fn` in Traits (Stable in Rust 2024)
37
- ```rust
38
- // No longer need #[async_trait] macro!
39
- trait DataStore {
40
- async fn get(&self, id: &str) -> Result<Data, Error>;
41
- async fn set(&self, id: &str, data: Data) -> Result<(), Error>;
42
- }
43
-
44
- impl DataStore for PostgresStore {
45
- async fn get(&self, id: &str) -> Result<Data, Error> {
46
- sqlx::query_as("SELECT * FROM data WHERE id = $1")
47
- .bind(id)
48
- .fetch_one(&self.pool)
49
- .await
50
- .map_err(Into::into)
51
- }
52
- async fn set(&self, id: &str, data: Data) -> Result<(), Error> {
53
- sqlx::query("INSERT INTO data (id, value) VALUES ($1, $2) ON CONFLICT (id) DO UPDATE SET value = $2")
54
- .bind(id)
55
- .bind(&data.value)
56
- .execute(&self.pool)
57
- .await?;
58
- Ok(())
59
- }
60
- }
61
- ```
62
-
63
- ### Axum 0.8 — HTTP API Framework
64
- ```rust
65
- use axum::{
66
- extract::{Path, State},
67
- response::Json,
68
- routing::{get, post},
69
- Router,
70
- };
71
- use sqlx::PgPool;
72
- use serde::{Deserialize, Serialize};
73
-
74
- #[derive(Clone)]
75
- struct AppState {
76
- db: PgPool,
77
- }
78
-
79
- #[derive(Serialize, Deserialize)]
80
- struct User {
81
- id: String,
82
- name: String,
83
- email: String,
84
- }
85
-
86
- async fn get_user(
87
- Path(user_id): Path<String>,
88
- State(state): State<AppState>,
89
- ) -> Result<Json<User>, StatusCode> {
90
- let user = sqlx::query_as!(User, "SELECT * FROM users WHERE id = $1", user_id)
91
- .fetch_optional(&state.db)
92
- .await
93
- .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?
94
- .ok_or(StatusCode::NOT_FOUND)?;
95
-
96
- Ok(Json(user))
97
- }
98
-
99
- #[tokio::main]
100
- async fn main() {
101
- let db = PgPool::connect(&std::env::var("DATABASE_URL").unwrap())
102
- .await
103
- .expect("Failed to connect to database");
104
-
105
- let state = AppState { db };
106
-
107
- let app = Router::new()
108
- .route("/users/:id", get(get_user))
109
- .route("/users", post(create_user))
110
- .with_state(state);
111
-
112
- let listener = tokio::net::TcpListener::bind("0.0.0.0:8080").await.unwrap();
113
- println!("Listening on :8080");
114
- axum::serve(listener, app).await.unwrap();
115
- }
116
- ```
117
-
118
- ### SQLx — Compile-Time Verified SQL
119
- ```rust
120
- // Compile-time SQL checking (requires DATABASE_URL at build time)
121
- let users = sqlx::query_as!(
122
- User,
123
- r#"SELECT id, name, email FROM users WHERE created_at > $1 ORDER BY created_at DESC LIMIT $2"#,
124
- since,
125
- limit as i64
126
- )
127
- .fetch_all(&pool)
128
- .await?;
129
- ```
130
-
131
- ### Error Handling — thiserror + anyhow
132
- ```rust
133
- use thiserror::Error;
134
-
135
- // Library errors: use thiserror for typed errors
136
- #[derive(Debug, Error)]
137
- pub enum AppError {
138
- #[error("User not found: {id}")]
139
- UserNotFound { id: String },
140
- #[error("Database error: {0}")]
141
- Database(#[from] sqlx::Error),
142
- #[error("Validation failed: {message}")]
143
- Validation { message: String },
144
- }
145
-
146
- // Application code: use anyhow for ergonomic error propagation
147
- use anyhow::{Context, Result};
148
-
149
- fn process() -> Result<()> {
150
- let config = load_config().context("Failed to load configuration")?;
151
- let db = connect_db(&config).context("Failed to connect to database")?;
152
- Ok(())
153
- }
154
- ```
155
-
156
- ### CLI Tools with Clap v4
157
- ```rust
158
- use clap::{Parser, Subcommand};
159
-
160
- #[derive(Parser)]
161
- #[command(name = "myapp", version, about = "My CLI tool")]
162
- struct Cli {
163
- #[command(subcommand)]
164
- command: Commands,
165
- }
166
-
167
- #[derive(Subcommand)]
168
- enum Commands {
169
- /// Start the server
170
- Serve {
171
- #[arg(short, long, default_value = "8080")]
172
- port: u16,
173
- },
174
- /// Run migrations
175
- Migrate,
176
- }
177
-
178
- #[tokio::main]
179
- async fn main() -> anyhow::Result<()> {
180
- let cli = Cli::parse();
181
- match cli.command {
182
- Commands::Serve { port } => serve(port).await,
183
- Commands::Migrate => run_migrations().await,
184
- }
185
- }
186
- ```
187
-
188
- ### Performance Best Practices
189
- - **Zero-cost abstractions**: Use iterators (`map`, `filter`, `collect`) — compiled to the same code as hand-written loops.
190
- - **Avoid unnecessary cloning**: Use references (`&T`) and lifetimes where possible.
191
- - **`Arc<T>` for shared state**: Use `Arc<Mutex<T>>` or `Arc<RwLock<T>>` for shared mutable state across threads.
192
- - **SIMD**: Use `std::simd` (stable in 1.88) for data-parallel operations.
193
- - **Profile before optimizing**: Use `cargo flamegraph` or `perf` to find actual bottlenecks.
194
-
195
- ---
196
-
197
- <a name="bahasa-indonesia"></a>
198
- ## Bahasa Indonesia
199
-
200
- ### Deskripsi
201
- Pengembangan Rust tingkat ahli untuk membangun sistem, API, CLI tool, dan WebAssembly yang aman di memori dan berkinerja tinggi. Mencakup **edisi Rust 2024**, async/await dengan Tokio, framework web Axum 0.8, SQLx untuk akses database async, dan idiom Rust modern.
202
-
203
- ### Kondisi Pemicu
204
- - Menulis kode sistem yang membutuhkan keamanan memori dan zero-cost abstraction.
205
- - Membangun HTTP API berkinerja tinggi dengan **Axum 0.8**.
206
- - Mengimplementasikan layanan async dengan runtime **Tokio**.
207
- - Berinteraksi dengan database menggunakan **SQLx** atau SeaORM.
208
- - Membangun CLI tool dengan **Clap v4**.
209
- - Mengkompilasi ke **WebAssembly (WASM)** untuk browser atau edge.
210
- - Menulis backend Rust untuk aplikasi desktop **Tauri v2**.
211
-
212
- ### Sorotan Edisi Rust 2024
213
- - **`async fn` dalam trait**: Kini stabil — tidak perlu lagi macro `#[async_trait]`.
214
- - **`if let` chains**: `if let Some(x) = opt && x > 0` kini berfungsi secara bersih.
215
- - **`gen` blocks**: Generator untuk produksi urutan yang malas.
216
- - **Aturan lifetime capture**: Inferensi lifetime yang lebih presisi di `impl Trait`.
217
-
218
- ### Axum 0.8 — Framework HTTP API
219
- Gunakan Axum untuk HTTP API yang idiomatis dan berkinerja tinggi dibangun di atas Tokio. Manfaatkan extractor (`Path`, `State`, `Json`, `Query`) untuk parameter handler yang type-safe.
220
-
221
- ### SQLx — SQL Terverifikasi Waktu Kompilasi
222
- SQLx memverifikasi query SQL Anda terhadap database nyata saat kompilasi — menghilangkan seluruh kelas bug runtime.
223
-
224
- ### Penanganan Error — thiserror + anyhow
225
- - Gunakan `thiserror` untuk error bertipe di library code.
226
- - Gunakan `anyhow` untuk propagasi error yang ergonomis di application code.
227
-
228
- ### CLI Tool dengan Clap v4
229
- Clap v4 menggunakan derive macro untuk mendefinisikan antarmuka CLI secara deklaratif — perintah, subperintah, argumen, dan flag dengan parsing bawaan.
230
-
231
- ### Praktik Terbaik Performa
232
- - Gunakan iterator (`map`, `filter`, `collect`) — dikompilasi setara dengan loop manual.
233
- - Hindari cloning yang tidak perlu — gunakan referensi dan lifetime.
234
- - Gunakan `Arc<Mutex<T>>` untuk state bersama yang dapat dimutasi di antara thread.
235
- - Profiling terlebih dahulu dengan `cargo flamegraph` sebelum mengoptimalkan.
5
+ ---
6
+
7
+ # Rust Programming Expert (2024 Edition / v1.88+)
8
+
9
+ [English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
10
+
11
+ ---
12
+
13
+ <a name="english"></a>
14
+ ## English
15
+
16
+ ### Orchestration & Integration
17
+ Connects and orchestrates with relevant domain skills like `brainstorming`, `zero-to-prod-orchestrator`, and `project-context-mapper` to ensure cohesive execution.
18
+
19
+ ### Description
20
+ Expert-level Rust development for building memory-safe, high-performance systems, APIs, CLI tools, and WebAssembly. Covers the **Rust 2024 edition**, async/await with Tokio, Axum 0.8 web framework, SQLx for async database access, and modern Rust idioms.
21
+
22
+ ### Trigger Conditions
23
+ - Writing systems-level code requiring memory safety and zero-cost abstractions.
24
+ - Building high-performance HTTP APIs with **Axum 0.8**.
25
+ - Implementing async services with **Tokio** runtime.
26
+ - Interacting with databases using **SQLx** or **SeaORM**.
27
+ - Building CLI tools with **Clap v4**.
28
+ - Compiling to **WebAssembly (WASM)** for browser or edge deployment.
29
+ - Writing Rust for **Tauri v2** desktop application backends.
30
+
31
+ ### Rust 2024 Edition Highlights
32
+ The Rust 2024 edition (stabilized in 1.85) introduces:
33
+ - **`gen` blocks**: Generators for lazy sequence production.
34
+ - **Lifetime capture rules**: More precise lifetime inference in `impl Trait`.
35
+ - **Unsafe extern blocks**: Clearer unsafe boundary declarations.
36
+ - **`if let` chains**: `if let Some(x) = opt && x > 0` now works cleanly.
37
+ - **`async fn` in traits**: Now stable — no more `async-trait` macro needed.
38
+
39
+ ### Async `fn` in Traits (Stable in Rust 2024)
40
+ ```rust
41
+ // No longer need #[async_trait] macro!
42
+ trait DataStore {
43
+ async fn get(&self, id: &str) -> Result<Data, Error>;
44
+ async fn set(&self, id: &str, data: Data) -> Result<(), Error>;
45
+ }
46
+
47
+ impl DataStore for PostgresStore {
48
+ async fn get(&self, id: &str) -> Result<Data, Error> {
49
+ sqlx::query_as("SELECT * FROM data WHERE id = $1")
50
+ .bind(id)
51
+ .fetch_one(&self.pool)
52
+ .await
53
+ .map_err(Into::into)
54
+ }
55
+ async fn set(&self, id: &str, data: Data) -> Result<(), Error> {
56
+ sqlx::query("INSERT INTO data (id, value) VALUES ($1, $2) ON CONFLICT (id) DO UPDATE SET value = $2")
57
+ .bind(id)
58
+ .bind(&data.value)
59
+ .execute(&self.pool)
60
+ .await?;
61
+ Ok(())
62
+ }
63
+ }
64
+ ```
65
+
66
+ ### Axum 0.8 — HTTP API Framework
67
+ ```rust
68
+ use axum::{
69
+ extract::{Path, State},
70
+ response::Json,
71
+ routing::{get, post},
72
+ Router,
73
+ };
74
+ use sqlx::PgPool;
75
+ use serde::{Deserialize, Serialize};
76
+
77
+ #[derive(Clone)]
78
+ struct AppState {
79
+ db: PgPool,
80
+ }
81
+
82
+ #[derive(Serialize, Deserialize)]
83
+ struct User {
84
+ id: String,
85
+ name: String,
86
+ email: String,
87
+ }
88
+
89
+ async fn get_user(
90
+ Path(user_id): Path<String>,
91
+ State(state): State<AppState>,
92
+ ) -> Result<Json<User>, StatusCode> {
93
+ let user = sqlx::query_as!(User, "SELECT * FROM users WHERE id = $1", user_id)
94
+ .fetch_optional(&state.db)
95
+ .await
96
+ .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?
97
+ .ok_or(StatusCode::NOT_FOUND)?;
98
+
99
+ Ok(Json(user))
100
+ }
101
+
102
+ #[tokio::main]
103
+ async fn main() {
104
+ let db = PgPool::connect(&std::env::var("DATABASE_URL").unwrap())
105
+ .await
106
+ .expect("Failed to connect to database");
107
+
108
+ let state = AppState { db };
109
+
110
+ let app = Router::new()
111
+ .route("/users/:id", get(get_user))
112
+ .route("/users", post(create_user))
113
+ .with_state(state);
114
+
115
+ let listener = tokio::net::TcpListener::bind("0.0.0.0:8080").await.unwrap();
116
+ println!("Listening on :8080");
117
+ axum::serve(listener, app).await.unwrap();
118
+ }
119
+ ```
120
+
121
+ ### SQLx — Compile-Time Verified SQL
122
+ ```rust
123
+ // Compile-time SQL checking (requires DATABASE_URL at build time)
124
+ let users = sqlx::query_as!(
125
+ User,
126
+ r#"SELECT id, name, email FROM users WHERE created_at > $1 ORDER BY created_at DESC LIMIT $2"#,
127
+ since,
128
+ limit as i64
129
+ )
130
+ .fetch_all(&pool)
131
+ .await?;
132
+ ```
133
+
134
+ ### Error Handling — thiserror + anyhow
135
+ ```rust
136
+ use thiserror::Error;
137
+
138
+ // Library errors: use thiserror for typed errors
139
+ #[derive(Debug, Error)]
140
+ pub enum AppError {
141
+ #[error("User not found: {id}")]
142
+ UserNotFound { id: String },
143
+ #[error("Database error: {0}")]
144
+ Database(#[from] sqlx::Error),
145
+ #[error("Validation failed: {message}")]
146
+ Validation { message: String },
147
+ }
148
+
149
+ // Application code: use anyhow for ergonomic error propagation
150
+ use anyhow::{Context, Result};
151
+
152
+ fn process() -> Result<()> {
153
+ let config = load_config().context("Failed to load configuration")?;
154
+ let db = connect_db(&config).context("Failed to connect to database")?;
155
+ Ok(())
156
+ }
157
+ ```
158
+
159
+ ### CLI Tools with Clap v4
160
+ ```rust
161
+ use clap::{Parser, Subcommand};
162
+
163
+ #[derive(Parser)]
164
+ #[command(name = "myapp", version, about = "My CLI tool")]
165
+ struct Cli {
166
+ #[command(subcommand)]
167
+ command: Commands,
168
+ }
169
+
170
+ #[derive(Subcommand)]
171
+ enum Commands {
172
+ /// Start the server
173
+ Serve {
174
+ #[arg(short, long, default_value = "8080")]
175
+ port: u16,
176
+ },
177
+ /// Run migrations
178
+ Migrate,
179
+ }
180
+
181
+ #[tokio::main]
182
+ async fn main() -> anyhow::Result<()> {
183
+ let cli = Cli::parse();
184
+ match cli.command {
185
+ Commands::Serve { port } => serve(port).await,
186
+ Commands::Migrate => run_migrations().await,
187
+ }
188
+ }
189
+ ```
190
+
191
+ ### Performance Best Practices
192
+ - **Zero-cost abstractions**: Use iterators (`map`, `filter`, `collect`) — compiled to the same code as hand-written loops.
193
+ - **Avoid unnecessary cloning**: Use references (`&T`) and lifetimes where possible.
194
+ - **`Arc<T>` for shared state**: Use `Arc<Mutex<T>>` or `Arc<RwLock<T>>` for shared mutable state across threads.
195
+ - **SIMD**: Use `std::simd` (stable in 1.88) for data-parallel operations.
196
+ - **Profile before optimizing**: Use `cargo flamegraph` or `perf` to find actual bottlenecks.
197
+
198
+ ---
199
+
200
+ <a name="bahasa-indonesia"></a>
201
+ ## Bahasa Indonesia
202
+
203
+ ### Integrasi Orkestrasi
204
+ Terhubung dan mengorkestrasi skill domain yang relevan seperti `brainstorming`, `zero-to-prod-orchestrator`, dan `project-context-mapper` untuk memastikan eksekusi yang kohesif.
205
+
206
+ ### Deskripsi
207
+ Pengembangan Rust tingkat ahli untuk membangun sistem, API, CLI tool, dan WebAssembly yang aman di memori dan berkinerja tinggi. Mencakup **edisi Rust 2024**, async/await dengan Tokio, framework web Axum 0.8, SQLx untuk akses database async, dan idiom Rust modern.
208
+
209
+ ### Kondisi Pemicu
210
+ - Menulis kode sistem yang membutuhkan keamanan memori dan zero-cost abstraction.
211
+ - Membangun HTTP API berkinerja tinggi dengan **Axum 0.8**.
212
+ - Mengimplementasikan layanan async dengan runtime **Tokio**.
213
+ - Berinteraksi dengan database menggunakan **SQLx** atau SeaORM.
214
+ - Membangun CLI tool dengan **Clap v4**.
215
+ - Mengkompilasi ke **WebAssembly (WASM)** untuk browser atau edge.
216
+ - Menulis backend Rust untuk aplikasi desktop **Tauri v2**.
217
+
218
+ ### Sorotan Edisi Rust 2024
219
+ - **`async fn` dalam trait**: Kini stabil — tidak perlu lagi macro `#[async_trait]`.
220
+ - **`if let` chains**: `if let Some(x) = opt && x > 0` kini berfungsi secara bersih.
221
+ - **`gen` blocks**: Generator untuk produksi urutan yang malas.
222
+ - **Aturan lifetime capture**: Inferensi lifetime yang lebih presisi di `impl Trait`.
223
+
224
+ ### Axum 0.8 — Framework HTTP API
225
+ Gunakan Axum untuk HTTP API yang idiomatis dan berkinerja tinggi dibangun di atas Tokio. Manfaatkan extractor (`Path`, `State`, `Json`, `Query`) untuk parameter handler yang type-safe.
226
+
227
+ ### SQLx — SQL Terverifikasi Waktu Kompilasi
228
+ SQLx memverifikasi query SQL Anda terhadap database nyata saat kompilasi — menghilangkan seluruh kelas bug runtime.
229
+
230
+ ### Penanganan Error — thiserror + anyhow
231
+ - Gunakan `thiserror` untuk error bertipe di library code.
232
+ - Gunakan `anyhow` untuk propagasi error yang ergonomis di application code.
233
+
234
+ ### CLI Tool dengan Clap v4
235
+ Clap v4 menggunakan derive macro untuk mendefinisikan antarmuka CLI secara deklaratif — perintah, subperintah, argumen, dan flag dengan parsing bawaan.
236
+
237
+ ### Praktik Terbaik Performa
238
+ - Gunakan iterator (`map`, `filter`, `collect`) — dikompilasi setara dengan loop manual.
239
+ - Hindari cloning yang tidak perlu — gunakan referensi dan lifetime.
240
+ - Gunakan `Arc<Mutex<T>>` untuk state bersama yang dapat dimutasi di antara thread.
241
+ - Profiling terlebih dahulu dengan `cargo flamegraph` sebelum mengoptimalkan.