armature-admin 0.1.1

Auto-generated CRUD admin dashboard for Armature framework
Documentation

Admin Dashboard Generator for Armature Framework

Auto-generates a complete CRUD admin interface from your models, similar to Django Admin or Rails Admin.

Overview

┌─────────────────────────────────────────────────────────────────┐
│                    Admin Dashboard                               │
│                                                                  │
│  ┌──────────────────────────────────────────────────────────┐  │
│  │  Navigation    │  Content Area                           │  │
│  │  ───────────   │  ─────────────                          │  │
│  │  Dashboard     │  ┌────────────────────────────────────┐ │  │
│  │  Users         │  │  Users List                        │ │  │
│  │  Products      │  │  ─────────────────────────────────  │ │  │
│  │  Orders        │  │  [Search] [Filter] [+Add]          │ │  │
│  │  Settings      │  │  ┌────┬────────┬────────┬───────┐  │ │  │
│  │                │  │  │ ID │ Name   │ Email  │ Actions│  │ │  │
│  │                │  │  ├────┼────────┼────────┼───────┤  │ │  │
│  │                │  │  │ 1  │ Alice  │ a@...  │ ✏️ 🗑️ │  │ │  │
│  │                │  │  │ 2  │ Bob    │ b@...  │ ✏️ 🗑️ │  │ │  │
│  │                │  │  └────┴────────┴────────┴───────┘  │ │  │
│  │                │  │  [◀ Prev] Page 1 of 10 [Next ▶]   │ │  │
│  │                │  └────────────────────────────────────┘ │  │
│  └──────────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────────┘

Quick Start

use armature_admin::{Admin, AdminModel, Field};

#[derive(AdminModel)]
#[admin(list_display = ["id", "name", "email"])]
#[admin(search_fields = ["name", "email"])]
struct User {
    #[admin(primary_key)]
    id: i64,
    #[admin(required)]
    name: String,
    #[admin(widget = "email")]
    email: String,
    #[admin(readonly)]
    created_at: DateTime<Utc>,
}

let admin = Admin::new()
    .title("My Admin")
    .register::<User>()
    .build();

// Mount at /admin
app.mount("/admin", admin.routes());