RustRover cargo-generate template: Axum + Vue 3 + TypeScript + Tailwind + sqlx
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 
 
 
Jared Bell 961c5e2083 Add WebSocket support for LLM queries and query management interface 1周前
.gitea Initial Axum + Vue fullstack template. 1周前
apps Add WebSocket support for LLM queries and query management interface 1周前
config Initial Axum + Vue fullstack template. 1周前
docs Fix APP__ env prefix so .env database URL is honored. 1周前
infra Initial Axum + Vue fullstack template. 1周前
packages/contracts Add WebSocket support for LLM queries and query management interface 1周前
scripts Add WebSocket support for LLM queries and query management interface 1周前
.editorconfig Initial Axum + Vue fullstack template. 1周前
.env.example Fix APP__ env prefix so .env database URL is honored. 1周前
.gitignore Initial Axum + Vue fullstack template. 1周前
Cargo.lock Add WebSocket support for LLM queries and query management interface 1周前
Cargo.toml Add WebSocket support for LLM queries and query management interface 1周前
LICENSE Initial Axum + Vue fullstack template. 1周前
README.md Initial Axum + Vue fullstack template. 1周前
cargo-generate.toml Initial Axum + Vue fullstack template. 1周前
justfile Initial Axum + Vue fullstack template. 1周前
rust-toolchain.toml Initial Axum + Vue fullstack template. 1周前
rustfmt.toml Initial Axum + Vue fullstack template. 1周前

README.md

rust-template

RustRover-ready fullstack starter: Axum + PostgreSQL + sqlx on the backend, Vue 3 + TypeScript + Tailwind 4 on the frontend.

The backend route table is the API contract. utoipa-axum builds OpenAPI from the same handlers Axum serves. just generate-api writes packages/contracts/openapi.json and a typed Vue client. Vite reads config/*.toml and reverse-proxies /api and /health to the server bind address.

Layout

config/                  shared TOML (server + Vite)
apps/server/             Axum, sqlx, request logging, OpenAPI
apps/web/                Vue 3 + TS + Tailwind
packages/contracts/      generated openapi.json
scripts/generate-api.mjs typed client from that spec
infra/compose/           local Postgres

Run it

cp .env.example .env
docker compose -f infra/compose/docker-compose.yml up -d postgres
cargo run -p server
cd apps/web && npm install && npm run dev

Vite binds 127.0.0.1 on purpose. localhost can resolve to ::1 and miss the proxy.

RustRover

Open the repo root. Run cargo run -p server with APP_ENV=development.

To use this as a New Project template: Settings → Languages & Frameworks → Rust → custom cargo-generate template → paste the Git URL of this repo.

Config

Load order:

  1. config/default.toml
  2. config/{APP_ENV}.toml
  3. APP__SECTION__KEY environment variables
APP__SERVER__PORT=9000 cargo run -p server

Both processes honor APP_CONFIG_DIR if you need the files somewhere else.

Add an endpoint

  1. Handler + #[utoipa::path(...)]
  2. .routes(routes!(your_handler)) in apps/server/src/routes/mod.rs
  3. just generate-api
  4. Import the new function from apps/web/src/api/generated.ts

Request logs include method, path, status, latency, and X-Request-Id.

Useful commands

just server
just web
just generate-api
just check