Skip to content
Public template

About

The RustaSea application skeleton — Laravel-inspired developer experience for Rust. Generated with cargo rustasea new.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

RustaSea Logo

Framework Build Status Template Repository License

About RustaSea

RustaSea is a web application framework for Rust with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. RustaSea takes the pain out of development by easing common tasks used in many web projects, such as:

  • Simple, fast routing engine.
  • Powerful dependency injection container.
  • Multiple back-ends for session and cache storage.
  • Expressive, intuitive database ORM.
  • Database agnostic schema migrations.
  • Robust background job processing.
  • Real-time event broadcasting.

This repository is the application skeleton (analog laravel/laravel) — the starting point for your own RustaSea project. It is generated by cargo rustasea new and marked as a GitHub template repository. The framework itself lives at rustasea/framework (analog laravel/framework).

Learning RustaSea

RustaSea is documented in the framework repository:

New to the framework? Read the generated README.md for the application layout, then follow the Development section below to boot the app.

Prerequisites

The RustaSea framework crates are not yet published to crates.io. Until the first release, cargo build will not resolve the rustasea = "0.1" and rustasea-view = "0.1" dependencies declared in Cargo.toml. For local development, point those dependencies at the framework repository with a [patch.crates-io] block:

[patch.crates-io]
rustasea = { git = "https://github.com/rustasea/framework.git" }
rustasea-view = { git = "https://github.com/rustasea/framework.git" }

Rust 1.88 or newer is required. Install the toolchain via rustup and confirm cargo --version reports 1.88 or newer.

Layout

  • app/: domain actions, concerns, HTTP controllers/middleware/requests, models, providers
  • bootstrap/: application kernel wiring (providers, commands); bootstrap/cache/ is runtime config cache
  • config/: typed TOML configuration, auto-discovered by the loader (config/*.toml)
  • routes/: web, auth, settings, and console route tables
  • database/: migrations, factories, seeders
  • public/: web root (robots.txt, favicon.ico); build output is ignored
  • resources/: presentation layer for the blade variant
  • storage/: runtime state (app/private, framework/{cache/data,sessions,testing,views})
  • tests/: feature and unit test suites

Development

cargo run

The server binds 0.0.0.0:8000 by default (APP_URL overrides it).

Console commands are run through the Artisan-style CLI:

cargo artisan migrate              # run the database migrations
cargo artisan route:list           # inspect the registered route table
cargo artisan make:controller Post # scaffold a controller
cargo artisan show:model User      # inspect a model's source metadata

Quality gate — the same checks that run in CI:

cargo fmt --all -- --check
cargo clippy --all-targets -- -D warnings
cargo test

Docker

A container stack with laravel/sail parity is generated alongside the app:

docker-compose up -d                                          # app + infra
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up  # hot reload
docker-compose down                                           # tear down
Service Ports Purpose
app 8000 The application HTTP app
postgres 5432 Primary SQL store + pgvector
redis 6379 Cache + queue backend
minio 9000, 9001 S3-compatible storage (9001 = console)
mailpit 1025, 8025 SMTP capture (1025) + web UI (8025)

App: http://localhost:8000 · Mailpit UI: http://localhost:8025 · MinIO console: http://localhost:9001.

Agentic Development

RustaSea's predictable structure and conventions make it ideal for AI coding agents like Claude Code, Cursor, and GitHub Copilot. Every project exposes its knowledge surface over the Model Context Protocol:

cargo artisan mcp:serve   # requires the `ai-mcp` feature on the `rustasea` crate

The MCP server gives agents 15+ tools and resources — route tables, model introspection, documentation, configuration, and make:plan scaffold planning — so agents build RustaSea applications while following best practices.

Related Projects

  • RustaSea framework — the framework this application skeleton is built on.
  • opencode-9router — OpenCode plugin that registers 9Router as a provider with automatic model discovery and caching.
  • local-memory-mcp — a lightweight MCP server that gives AI agents persistent memory with semantic search, backed by SQLite.

Contributing

Thank you for considering contributing to the RustaSea framework! The contribution guide can be found in the framework repository. This application skeleton is a template — open an issue on rustasea/rustasea for skeleton-specific problems, or on rustasea/framework for framework bugs and feature requests.

Code of Conduct

In order to ensure that the RustaSea community is welcoming to all, please review and abide by the Code of Conduct.

Security Vulnerabilities

If you discover a security vulnerability within RustaSea, please review the disclosure process in SECURITY.md. All security vulnerabilities will be promptly addressed.

License

The RustaSea application skeleton is open-sourced software licensed under the MIT license.

About

The RustaSea application skeleton — Laravel-inspired developer experience for Rust. Generated with cargo rustasea new.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages