# felangel/bloc

A predictable state management library that helps implement the BLoC design pattern

Repository: https://github.com/felangel/bloc
Canonical: https://ross.abutalabs.com/products/bloc
Homepage: https://bloclibrary.dev
Language: Dart
License: MIT
License Family: permissive
Topics: flutter, dart, dartlang, flutter-package, bloc, dart-web, dart-library, state-management, library, angulardart, concurrency
Last push: 2026-08-10T16:40:08+00:00

## Health v2 (maintenance only)
Score: 91/100 (v2, computed 2026-09-03T02:39:23.370411+00:00)
- activity 97, release rhythm 79, longevity 100
- inputs: {"age_days": 2887, "days_push": 23, "days_rel": 60, "gap_med": 1, "n_releases_24m": 62}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 12482, forks 3420 (observed 2026-08-28T04:10:59.154611+00:00)

## What it is
Bloc is a predictable state management library for Dart, Flutter, and AngularDart that implements the BLoC (Business Logic Component) design pattern. It provides a rich ecosystem of packages including Flutter widgets, testing utilities, persistence, undo/redo, event transformers, and linting tools.

## Use cases
- manage app state in a flutter app
- separate business logic from ui in dart applications
- implement predictable unidirectional data flow
- add undo and redo to app state
- persist state across app restarts
- test state changes in flutter apps
- control how concurrent events are processed

## When to choose
- building medium-to-large Flutter apps needing structured, testable state management
- teams wanting a strict, predictable architecture with strong conventions
- projects requiring state persistence, replay, or concurrency control out of the box

## When to avoid
- small prototypes where setState or a lightweight solution suffices
- developers who prefer minimal boilerplate and implicit state management
- non-Dart/non-Flutter projects

## Facets
- artifact type: library
- maturity: stable
- function: state-management, concurrency, testing
- domain: frontend, mobile-development, web-development, cross-platform
- platform: cross-platform
- tags: bloc, flutter, angular-dart, reactive-state, event-driven, undo-redo, persistence

## Member repositories
- felangel/bloc (main) score 91

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:10:59.154611+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T17:14:01.370198+00:00, confidence not recorded.
  - readme: https://github.com/felangel/bloc (fetched 2026-08-28T04:10:59.154611+00:00, sha 1d1bdd96f49a)
  - homepage: https://bloclibrary.dev (fetched 2026-08-29T08:10:46.899755+00:00, sha 54c8452b45dc)
  - site_page: https://bloclibrary.dev/getting-started (fetched 2026-08-29T08:10:46.908742+00:00, sha 686145331178)
  - site_page: https://bloclibrary.dev/faqs (fetched 2026-08-29T08:10:46.910653+00:00, sha 102f294ece1b)
- Data as of 2026-08-30T08:39:29.467469+00:00.
