crabster

Vision and goals

{% raw %}

Why Crabster?🔗

A "batteries included" application generator turns a domain model into a complete application — persistence, API, security, tests, containerization, CI — instead of a blank page or a bare-bones skeleton. Several ecosystems have one; Rust does not.

Rust developers who want to start a production web service today have to manually assemble: web framework, ORM, migrations, authentication, validation, OpenAPI documentation, observability, containerization — repetitive, error-prone work that diverges from project to project.

Crabster aims to fill that gap: a generator that produces idiomatic, compilable, tested, production-ready Rust code from a high-level description of the business domain.

Guiding principles🔗

  1. Generated code is owned code. Generated code fully belongs to the developer: no runtime dependency on a proprietary "magic" framework. The output is standard, readable, modifiable Rust that does not need Crabster to compile or run once generated.
  2. Idiomatic first. We do not mechanically copy Java/Spring patterns (annotations, reflection, runtime dependency injection). We pick the Rust patterns that fit: traits, procedural macros (sparingly), explicit composition, Result-based error handling.
  3. Convention over configuration, without black magic. Sensible, documented defaults, with customization available through templates (the blueprint mechanism, see Technical architecture).
  4. Production-ready on generation. A generated project must start, have passing tests, a working Dockerfile, a CI pipeline, and health checks — not a half-finished skeleton.
  5. Evolvable and incremental. Crabster must let you add or change records on an existing project without full regeneration, via a merge mechanism (see Phase 11, in V2).
  6. API-first, frontend deferred. V1 focuses exclusively on backend generation (REST API + persistence + security + docs). This is a deliberate choice: ship a solid, well-tested generator core before opening the frontend front, rather than spreading effort thin. See ADR-0001 below.
  7. Community and extensibility. Long-term value comes from the blueprint ecosystem (NoSQL support, Kubernetes, specific cloud providers…), not just the core.

What Crabster is not🔗

Target audience🔗

Measurable goals (V1)🔗

ADR-0001 — API-only in V1🔗