Skip to content

avesbox/inertia_dart

Repository files navigation

inertia_dart

Dart implementation of the Inertia.js server-side protocol. Build single-page apps without building an API — pair any Dart HTTP server with a client adapter like @inertiajs/react, @inertiajs/vue3, or @inertiajs/svelte.

Packages

Package pub.dev Description
inertia_dart pub Core protocol — framework-agnostic props, SSR, asset helpers, and testing utilities
routed_inertia pub Routed integration — middleware, EngineContext helpers, config-driven setup, and SSR
serinus_inertia pub Serinus integration — InertiaModule, RequestContext.inertia(), and managed SSR

inertia_dart — Core Package

The framework-agnostic foundation. Use it directly with dart:io or as the building block for higher-level integrations.

import 'package:inertia_dart/inertia_dart.dart';

final request = inertiaRequestFromHttp(httpRequest);
final page = InertiaResponseFactory().buildPageData(
  component: 'Dashboard',
  props: {
    'user': {'name': 'Ada'},
    'stats': LazyProp(() => loadStats()),
  },
  url: request.url,
  context: request.createContext(),
  version: '1.0.0',
);

await writeInertiaResponse(httpRequest.response, InertiaResponse.json(page));

Full docs →


serinus_inertia — Serinus Integration

Provides a first-class Serinus experience via InertiaModule and RequestContext.inertia().

import 'package:serinus/serinus.dart';
import 'package:serinus_inertia/serinus_inertia.dart';

class AppModule extends Module {
  AppModule()
    : super(
        imports: [
          InertiaModule(
            options: InertiaOptions(
              version: '1.0.0',
              assets: InertiaAssetsOptions(
                entry: 'src/main.jsx',
                clientDirectory: 'client',
                includeReactRefresh: true,
              ),
            ),
          ),
        ],
        controllers: [AppController()],
      );
}
class AppController extends Controller {
  AppController() : super('/') {
    on(Route.get('/'), (context) async {
      return context.inertia(
        component: 'Home',
        props: {'title': 'Hello from Serinus'},
      );
    });
  }
}

About

Dart Inertia.js protocol implementation and standalone examples

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors