rustio-core 2.0.5

Runtime core for RustIO: HTTP server, router, middleware, ORM, admin, and migrations.
Documentation
<!DOCTYPE html>
<html lang="{{ lang | default('en') }}" data-theme="light">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  {# No-FOUC theme bootstrap. Runs before any stylesheet link so the
     attribute is set before the body paints. Default is light; dark is
     opt-in and persisted via `localStorage.rio-theme`. #}
  <script>
    (function () {
      var saved = localStorage.getItem('rio-theme');
      var theme = saved === 'dark' ? 'dark' : 'light';
      document.documentElement.setAttribute('data-theme', theme);
    })();
  </script>
  <title>{% block title %}{{ design.project_name | default('RustIO') }}{% endblock %}</title>
  <link rel="icon" type="image/svg+xml" href="/admin/static/favicon.svg">
  {# Fonts: system stack only. Inter is listed first in admin.css's
     --font-sans, so a project that opts in (via its own <link> to a
     self-hosted copy) picks it up automatically; without it the OS
     picks the best native UI font (SF Pro / Segoe UI / Roboto) and the
     admin renders identically offline, behind a strict CSP, or on an
     air-gapped network. Honors the framework's single-binary promise
     — no CDN @import, no external webfont download at runtime. #}
  <link rel="stylesheet" href="/admin/static/admin.css">
  {% block head_extra %}{% endblock %}
</head>
<body class="bg-canvas text-primary {% block body_class %}{% endblock %}">
  {% block body %}{% endblock %}
  <script src="/admin/static/app.js" defer></script>
  {% block body_extra %}{% endblock %}
</body>
</html>