Tinder/Scarlet

A Retrofit inspired WebSocket client for Kotlin, Java, and Android

View on GitHub ↗Jump to charts ↓

Tinder/Scarlet has 3k+ stars and 200+ forks on GitHub, is written in Kotlin, and was last pushed on Nov 21, 2025. Data as of . Signed-in members get hourly updates — create a free account.

Summary Information

Updated 45 minutes ago
Added to GitGenius on September 21st, 2026
Created on May 29th, 2018
Open Issues & Pull Requests: 108 (+0)
GitHub issues: Enabled
Number of forks: 244
Total Stargazers: 3,257 (+0)
Total Subscribers: 54 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 5.1 hours
Mean response time: 229.6 days
90th percentile: 925.6 days
Tracked items: 8

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 9
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 624 days
Stale 30+ days: 9
Stale 90+ days: 9

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

Sign in to see which issues are moving.
Sign in

Detailed Description

Scarlet is a Retrofit-inspired WebSocket client for Kotlin, Java, and Android.

Scarlet addresses the complexity of managing WebSocket connections by providing a declarative interface pattern familiar to developers who use Retrofit. You define a WebSocket client as a Kotlin or Java interface with annotated methods, then Scarlet generates an implementation that handles connection lifecycle, message serialization, and stream adaptation. The tool is driven by a state machine on Android, managing connection state transitions automatically.

Scarlet suits projects that need real-time bidirectional communication over WebSocket and want to avoid boilerplate connection management code. It works well for Android applications, backend services in Kotlin or Java, and scenarios requiring reactive streams. The tool integrates with popular serialization libraries including Moshi, Gson, Protocol Buffers, and Jackson, and supports reactive adapters for RxJava and Kotlin Coroutines. It can use OkHttpClient as the underlying WebSocket factory or MockHttpServer for testing.

The project is actively evolving beyond WebSocket support. Development is underway on a new version that extends the framework to handle other persistent connection protocols including ServerSentEvent, Socket IO, STOMP, and MQTT, available on a separate branch. This expansion indicates the maintainers are building toward a more general-purpose persistent connection client rather than remaining WebSocket-specific.