qora 0.3.0 copy "qora: ^0.3.0" to clipboard
qora: ^0.3.0 copied to clipboard

A powerful async state management library for Dart, inspired by TanStack Query

qora #

Pure Dart server state management. Zero Flutter dependency — works in Flutter apps, CLI tools, backend services, or shared packages.

Install #

dependencies:
  qora: ^1.0.0

Quick start #

import 'package:qora/qora.dart';

final client = QoraClient(
  config: const QoraClientConfig(
    defaultOptions: QoraOptions(
      staleTime: Duration(minutes: 5),
      retryCount: 3,
    ),
  ),
);

// One-shot fetch — cached, deduplicated, retried automatically
final user = await client.fetchQuery<User>(
  key: ['users', 1],
  fetcher: () => api.getUser(1),
);

// Reactive stream — emits on every state transition
client.watchQuery<User>(
  key: ['users', 1],
  fetcher: () => api.getUser(1),
).listen((state) {
  switch (state) {
    case Success(:final data):  print('User: ${data.name}');
    case Failure(:final error): print('Error: $error');
    default: {}
  }
});

// Optimistic update with safe rollback
final snapshot = client.getState<User>(['users', 1]);
client.setQueryData(['users', 1], user.copyWith(name: 'Alice'));
try {
  await api.updateUser(1, name: 'Alice');
} catch (_) {
  client.restoreQueryData(['users', 1], snapshot);
}

client.dispose();

State machine #

QoraState<T> is a sealed class — the Dart compiler enforces exhaustive handling:

switch (state) {
  case Initial():                        // Not yet fetched
  case Loading(:final previousData):    // Fetching; previousData available during revalidation
  case Success(:final data, :final updatedAt): // Fresh data
  case Failure(:final error, :final previousData): // Error; previousData available for fallback
}

Documentation #

Full guides and API reference: qora.meragix.com

0
likes
160
points
238
downloads

Publisher

verified publishermeragix.dev

Weekly Downloads

A powerful async state management library for Dart, inspired by TanStack Query

Repository (GitHub)
View/report issues
Contributing

Documentation

Documentation
API reference

License

MIT (license)

Dependencies

meta

More

Packages that depend on qora