Ignite rocketboost.rs
RocketBoost Ignite

Ignite

Ignite is an admin panel for Rocket, the Rust web framework. Give it a MariaDB or MySQL table and it builds a back office for that table: a login page, a dashboard, and screens to list, search, sort, create, edit and delete its rows.

Status. Ignite is in development. The panel, the resources, the derive, the dashboard with its stat cards and tables of the latest records, and the sign-in protections (server-side sessions, form tokens and login throttling), with the same token check on an app's own form routes, are built. Some features are not yet, such as filters and bulk actions. Each page on this site says what is built and what is not.

What Ignite is

  • A panel inside your app. It mounts in a Rocket app, under /admin by default.
  • Modelled on Filament 5.x. It has a panel, resources, forms, tables, actions, notifications, widgets and a login. The pages here follow the Filament docs' order, so that reference is useful for the ideas.
  • Written in Rust. A resource is a Rust type that implements a trait, or one that #[derive(IgniteResource)] writes from a Diesel model. The resource names the table's fields and columns, and how to list, create, update and delete its rows. Ignite draws the screens from that.

What Ignite is not

Version 1 leaves these out:

  • Infolists, a read-only view of one record.
  • Several panels, themes and translations.
  • Relations between tables, file uploads, filters and bulk actions.
  • Charts. The widgets are stat cards and tables of the newest records.

Ignite also supports MariaDB and MySQL only.

How it relates to Propel

Propel renders Ignite's screens. The panel's views live in the ignite namespace, so an app can extend them with @extends('ignite::layouts.app'). Debug builds render views at runtime. Release builds render compiled views.

How it relates to Diesel

Ignite queries the database with Diesel 2.x and the MySQL backend. When the app starts, the panel opens a pool of connections. Each request borrows a connection from the pool. A resource's queries are Diesel queries, whether the derive writes them or you do.