FasqBeta
Resilient async state management for Flutter.
Hardware-backed security, zero-boilerplate serialization, and isolate-powered performance.
What is Fasq?
Fasq is a resilient data layer for Flutter. Unlike traditional fetchers, it treats network flakiness and backend failure as first-class citizens, protecting your app with built-in Circuit Breakers and Automatic Retries.
Inspired by TanStack Query but built for the Flutter ecosystem, Fasq ensures 120FPS performance by offloading heavy JSON parsing to background Isolates and offers Secure Storage integration for sensitive data.
Choose Your Integration
Hooks Adapter
Use Fasq with flutter_hooks for declarative data fetching. Perfect for functional components and modern Flutter development.
useQuery, useMutation, useQueryClientBloc Adapter
Integrate Fasq with flutter_bloc for structured state management. Ideal for complex applications with clear separation of concerns.
QueryCubit, MutationCubitRiverpod Adapter
Leverage Fasq with flutter_riverpod for compile-safe providers and dependency injection. Great for scalable applications.
queryProvider, mutationProviderCore Package
Use Fasq's core widgets directly for maximum flexibility. Perfect for custom implementations and learning the fundamentals.
QueryBuilder, MutationBuilderEcosystem & Companion Packages
Fasq Security
Enterprise-grade AES-GCM encryption and secure SQL persistence. Protects sensitive data with hardware-backed keys.
SecurityPlugin, SecureStorageSerializer Generator
Automate type-safe query serialization using build_runner. Eliminate manual boilerplate for standard and custom data types.
@AutoRegisterSerializersComing Soon
Fasq Metrics
Standardized metrics exporting for Prometheus and OpenTelemetry. Track cache hits, latency, and failure rates.
Fasq Testing
Utilities for mocking queries and mutations in widget tests. Deterministic cache state for reliable CI/CD pipelines.
DevTools Integration
A dedicated Tab in Flutter DevTools to inspect the cache, view query timelines, and manually trigger refetches.
Key Features
Intelligent Caching
Automatic caching with configurable staleness detection. Data is cached intelligently and served instantly when available.
Request Deduplication
Multiple requests for the same data automatically deduplicated. Only one network call per unique query.
Type Safety
Full generic type support with compile-time safety. Catch errors at development time, not runtime.
Background Refetching
Stale data served instantly while fresh data loads in the background. Users never wait for data they already have.
Optimistic Updates
Update UI immediately and rollback on error. Provide instant feedback for better user experience.
Hardware-Backed Security
Leverage Secure Enclave and KeyStore to protect encryption keys. Industry-standard AES-GCM encryption for all secure cache entries.
Automated Serialization
Stop writing manual code for JSON parsing. Our generator handles nested generics and lists automatically for type-safe persistence.
Quick Example
// Using fasq_hooks
class UserProfile extends HookWidget {
@override
Widget build(BuildContext context) {
final userQuery = useQuery<User>(
queryKey: 'user-profile',
queryFn: () => api.getUserProfile(),
);
return userQuery.when(
loading: () => CircularProgressIndicator(),
error: (error) => Text('Error: $error'),
data: (user) => Column(
children: [
Text('Name: ${user.name}'),
Text('Email: ${user.email}'),
],
),
);
}
}Is FASQ Right for You?
Choose FASQ if you have:
- Multiple API endpoints to manage
- Complex caching requirements
- Need for request deduplication
- Background data synchronization
- Team standardization needs
- Performance-critical applications
Consider alternatives if you:
- Have simple, single API calls
- Need micro-level performance control
- Want minimal bundle size
- Are new to Flutter development
- Have unique state management needs
- Prefer complete code ownership
The Strategic Advantage: FASQ provides tactical speed with strategic resilience. Focus on your product while we handle the complexity of the network layer.
Get Started
Learn the Basics
Start with our comprehensive documentation covering core concepts, installation, and basic usage patterns.
Read Documentation →Try Examples
Explore real-world examples including REST APIs, GraphQL, authentication, and database integration.
View Examples →Choose Your Adapter
Pick the integration that fits your project: Hooks, Bloc, Riverpod, or use the core package directly.
Install Now →