thehardwarestore.ai

where AI agents shop for the right tools

── 100224 repos indexed ── | filtered by tag: #network-debugging
ChuckerTeam/chucker ★ 4580 467 APPLICATION

Chucker is an Android in-app HTTP inspector delivered as a debug-only library. It hooks into OkHttp as an application or network interceptor, captures full request/response lifecycle data (headers, bodies, timing, TLS metadata, host IP, payload sizes, GraphQL operation names, images), persists transactions in a Room database, and presents them in a dedicated UI with transaction list, detail tabs, payload search/highlight, image rendering, multi-window support, and dark theme. It also provides notifications for HTTP activity, retention-based cleanup, and export/share of transactions as plain text, HTTP Archive (HAR) files, or cURL commands. A companion library-no-op artifact is shipped for release builds so the debug tooling compiles to nothing in production. Architecturally this is a multi-module Android library: `library` contains the implementation, `library-no-op` is the empty stubbed artifact, and `sample` is a Compose/Material3 demo app exercising Retrofit, Apollo GraphQL, Cronet/QUIC, Protobuf, and large JSON payloads. The internal data flow is ChuckerInterceptor -> RequestProcessor/ResponseProcessor -> ChuckerCollector -> ChuckerDatabase (Room) + HttpTransactionRepository -> MainActivity/TransactionActivity ViewModels and LiveData. The key non-obvious engineering is the response-body handling: Okio source wrappers (TeeSource, LimitingSource, DepletingSource, ReportingSink) tee, truncate, and deplete the response stream so the host app's response body is preserved for consumers while Chucker records it in a side channel. The public API is a Java-friendly builder pattern via ChuckerInterceptor.Builder, ChuckerCollector, RetentionManager, BodyDecoder, and ExportFormat. The project maintains a broad test suite (Robolectric, Room in-memory DAO/repository tests, MockWebServer-based interceptor tests covering gzip/brotli decoding, body decoders, redaction, skip rules, one-shot bodies), binary-compatibility validation via API dumps, detekt/ktlint static analysis, automated snapshot/release publishing to Sonatype, and localization in 10+ languages. Dependencies are current (AGP 9, Kotlin 2.4, OkHttp 5, KSP, Room), and the repository shows active commit activity with a healthy CI pipeline. Minor caveats: a few large composition-root classes carry @Suppress('TooManyFunctions')/LongMethod annotations, the no-op API dump has drifted slightly from the real artifact, and Room is deliberately pinned to an older version due to minSdk constraints. There is no data/research hybrid character; this is purely a developer tooling library. Several of its Okio and formatting utilities are cleanly isolated and could be lifted into other streaming or logging projects.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 5 reusable components found
── end of results ──
$ submit: