Daravelv1.0.0
ENID GitHub

The Laravel developer experience, compiled to a single native binary.

Routes, form requests, an Eloquent-style ORM, Sanctum tokens, queues and a scheduler, in Dart. The server is one ahead-of-time compiled executable that uses every core, and it runs next to your Laravel application on the same database.

Get started Migrating from Laravel dart pub global activate dartisan_cli && dartisan new blog

Laravel

Route::post('/posts', [PostController::class, 'store'])
    ->middleware('auth:sanctum');

public function store(StorePostRequest $request)
{
    $post = Post::create($request->validated());

    return new PostResource($post);
}

Daravel

router.post('/posts', posts.store)
    .middleware(const ['auth'])
    .validates(const StorePostRequest())
    .returns(PostResource.schema, name: 'Post');

Future<Object?> store(Request request) async {
  final post = await Post.create(request.validated().toMap());

  return PostResource(post);
}

The form request runs before the handler, answers 403 or 422 in Laravel’s format, and the same declaration documents the route in OpenAPI.

What you get from Dart without losing Laravel

Every point links to the chapter that explains it, and each is checked by the test suite.

One native bundle
The application compiles ahead of time into machine code, with SQLite bundled. The server needs no SDK, runtime or source code.
No reflection, no build step
Generators write plain Dart into explicit registries, so the compiler sees exactly the code you read.
Every core on one port
A supervisor runs worker isolates, respawns crashes and drains on SIGTERM; a coordinator keeps locks and rate limits correct across them.
Request state stays in its request
Each request, job and command runs in its own zone, so facades and transactions never leak into another request.
Next to Laravel, on the same database
Tokens, bcrypt hashes, Crypt payloads, error JSON and shared tables are Laravel 12’s. Move one endpoint at a time.
Routes that document themselves
Declared validation and responses answer 403 and 422 before your handler and generate OpenAPI 3.1.
Guard rails included
Hashing off the event loop, lints against SQL interpolation, and security and Laravel conformance suites in CI.

Measured, not claimed

The benchmark harness builds the servers ahead of time and runs them next to a plain dart:io server on the same machine.

14 msfrom start to the first answered request
11 MBidle memory with one worker, 12 MB with four
78%of plain dart:io throughput for GET /ping with four isolates

GitHub Actions Linux runner, 4 CPUs, benchmark run 40092549095. Method and every scenario: Performance.

Packages

Published together on pub.dev under one version.

daravelThe framework.
dartisan_cliProjects, generators, hot reload, migrations, native builds.
daravel_testTestClient, database helpers, fakes, Laravel conformance matchers.
daravel_lintsLint rules for Daravel applications.
daravel_horizon, daravel_socialite, daravel_reverbQueue dashboard, OAuth sign-in, WebSockets. (Planned)
daragicLaravel ⇄ Daravel project generator. (Planned)