স্পষ্ট runtime আচরণসহ Riverpod-ধাঁচের ergonomics।

miniriverpod-এর Provider এবং AsyncProvider পরিচিত রাখে, কিন্তু আচরণকে স্পষ্ট API-তে সীমাবদ্ধ করে: family-এর মতো পরিচয়ের জন্য subclass + args, আপডেটের জন্য mutation token, এবং অনুমেয় lifecycle disposal।

কোনো Code Generation নয়

family-এর মতো provider, override, এবং dependency injection subclass + args + Scope দিয়ে মডেল করা হয়, code generation ছাড়াই।

একীভূত Async Model

একটি AsyncProvider Future ও Stream দুটোই সামলায়, rebuild, invalidate, refresh, এবং dispose-এর সময় কঠোর cancellation সহ।

Built-in Concurrency

Mutation call গুলি ref.invoke(provider.method()) এর মাধ্যমে concurrent, queue, restart, এবং dropLatest সমর্থন করে।

প্রস্তাবিত শুরু করার ধাপ

ProviderScope দিয়ে আপনার app ঘিরে রাখুন, Provider/AsyncProvider class নির্ধারণ করুন, এবং স্পষ্ট concurrency সহ ref.invoke-এর মাধ্যমে state update চালান।

ইনস্টল করুন

flutter pub add miniriverpod

Mutation + Invoke

lib/main.dart
class UserProvider extends AsyncProvider<User?> {
  UserProvider() : super.args(null);

  late final renameMut = mutation<void>(#rename);

  Call<void, AsyncValue<User?>> rename(String name) => mutate(
    renameMut,
    (ref) async {
      final api = ref.watch(apiProvider);
      await api.rename(name);
      ref.state = AsyncData(await api.me());
    },
    concurrency: Concurrency.restart,
  );
}

// UI
await ref.invoke(userProvider.rename('Alice'));
সামঞ্জস্যতা নোট

miniriverpod ইচ্ছাকৃতভাবে থাকে Provider + AsyncProvider + WidgetRef Riverpod-এর কাছাকাছি, তবে codegen-heavy পথগুলির বদলে subclass + args, Scope-ভিত্তিক injection, এবং স্পষ্ট mutation call ব্যবহার করে।

পূর্ববর্তী

Open Source

পরবর্তী

ইনস্টলেশন