# tumblr/Graywater

An Android library for decomposing RecyclerView layouts to improve scroll performance.

Repository: https://github.com/tumblr/Graywater
Canonical: https://ross.abutalabs.com/products/graywater
Language: Java
License: Apache-2.0
License Family: permissive
Topics: android, android-library, performance, recyclerview-adapter
Last push: 2018-01-03T19:21:49+00:00

## Health v2 (maintenance only)
Score: 23/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 0, release rhythm 8, longevity 100
- inputs: {"age_days": 3402, "days_push": 3164, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1205, forks 83 (observed 2026-08-28T04:03:59.249720+00:00)

## What it is
Graywater is an Android RecyclerView adapter library that decomposes complex list items into multiple viewholders to improve scroll performance and reduce memory usage. It maps large data models to multiple binders, splitting rendering work across frames, inspired by Facebook's Components for Android.

## Use cases
- improve recyclerview scroll performance on android
- reduce memory usage in complex android lists
- map one data model to multiple viewholders
- build a performant news feed style list
- recycle offscreen parts of complex list items
- modular recyclerview adapter architecture

## When to choose
- your Android app has complex, varied list items causing janky scrolling
- you want to split list item rendering across multiple frames
- you need shared viewholders across different model types to cut memory pressure

## When to avoid
- your lists are simple with few item types
- you need an actively maintained library - the last release was 2018
- you prefer modern declarative UI like Jetpack Compose or Litho

## Facets
- artifact type: library
- maturity: maintenance
- function: ui-components, state-management
- domain: mobile-development, android-tools, performance
- platform: jvm
- tags: recyclerview, adapter, viewholder, scroll-performance, java, list-ui, android

## Member repositories
- tumblr/Graywater (main) score 23

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:59.249720+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-30T06:19:37.194924+00:00, confidence not recorded.
  - readme: https://github.com/tumblr/Graywater (fetched 2026-08-28T04:03:59.249720+00:00, sha 42b9a084f338)
- Data as of 2026-08-30T08:39:29.467469+00:00.
