rustango 0.30.25

Django-shaped batteries-included web framework for Rust: ORM + migrations + auto-admin + multi-tenancy + audit log + auth (sessions, JWT, OAuth2/OIDC, HMAC) + APIs (ViewSet, OpenAPI auto-derive, JSON:API) + jobs (in-mem + Postgres) + email + media (S3 / R2 / B2 / MinIO + presigned uploads + collections + tags) + production middleware (CSRF, CSP, rate-limiting, compression, idempotency, etc.).
Documentation
<!doctype html>
<html lang="en" data-theme="{{ theme_mode | default(value='auto') }}">
<head>
  <meta charset="utf-8">
  <title>{% block title %}{{ brand_name | default(value='Rustango Operator Console') }}{% endblock %}</title>
  <script>
  // No-flash theme application — see _theme_toggle.html for the cycle UI.
  (function(){try{var t=localStorage.getItem('rustango-theme');if(t==='light'||t==='dark'||t==='auto'){document.documentElement.dataset.theme=t;}}catch(e){}})();
  </script>
  {% include "_theme_tokens.html" %}
  {% include "_op_styles.html" %}
  {% if brand_css %}<style>:root { {{ brand_css | safe }} }</style>{% endif %}
</head>
<body>
  <div class="shell">
    <aside class="sidebar">
      <div class="brand">
        {% if brand_logo_url %}<img class="brand-logo" src="{{ brand_logo_url | safe }}" alt="">{% endif %}
        <span>{{ brand_name | default(value='Rustango') }}</span>
        {% if brand_tagline %}<span class="brand-tagline">{{ brand_tagline }}</span>{% endif %}
      </div>
      <nav>
        <a href="/" class="{% if section == 'home' %}active{% endif %}">Home</a>
        <a href="/operators" class="{% if section == 'operators' %}active{% endif %}">Operators</a>
        <a href="/orgs" class="{% if section == 'orgs' %}active{% endif %}">Organizations</a>
        <a href="/change-password" class="{% if section == 'change_password' %}active{% endif %}">Change password</a>
      </nav>
      <div class="who">Signed in as <strong>{{ operator_username }}</strong></div>
      <form class="logout" method="post" action="/logout">
        <button type="submit">Sign out</button>
      </form>
    </aside>
    <main>
      {% block content %}{% endblock %}
    </main>
  </div>
  {% include "_theme_toggle.html" %}
</body>
</html>