raamcosta/compose-destinations

Annotation processing library for type-safe Jetpack Compose navigation with no boilerplate.

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 41 minutes ago
Type:Library / SDKCategory(s):AndroidMobile & Desktop
Added to GitGenius on September 20th, 2026
Created on September 1st, 2021
Open Issues & Pull Requests: 54 (+0)
GitHub issues: Enabled
Number of forks: 144
Total Stargazers: 3,389 (+0)
Total Subscribers: 21 (+0)

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 32
New in 7 days: 1
Closed in 7 days: 0
Avg open age: 470 days
Stale 30+ days: 30
Stale 90+ days: 30

Recent activity

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

Top labels

  • feedback needed (17)
  • enhancement (7)
  • dependency (2)
  • Not planned (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Compose Destinations is a Kotlin Symbol Processing library that generates type-safe navigation code for Jetpack Compose applications.

The library solves the problem of boilerplate-heavy, non-type-safe navigation in Jetpack Compose by using annotation processing to generate code that wraps the official Jetpack Compose Navigation framework. Developers annotate their screen Composables with @Destination, declare navigation arguments as function parameters, and the tool generates type-safe destination objects and navigation graphs. This approach eliminates manual route string management and argument serialization while keeping the underlying navigation APIs familiar.

Compose Destinations suits teams building Android apps with Jetpack Compose who want to reduce navigation boilerplate without adopting an entirely different navigation framework. It works with standard serializable types like Parcelable, Serializable, Enum, and kotlinx.serialization classes out of the box, and supports custom argument types. The tool handles navigation animations, deep linking, bottom sheet screens, and Wear OS support. It is particularly valuable for projects where type safety and reduced boilerplate are priorities, as it generates all necessary code at compile time rather than requiring manual route definitions.

The project maintains active development with a major version update introducing architectural changes and encouraging migration. The maintainers provide comprehensive documentation including migration guides and actively solicit feedback through GitHub issues and a dedicated Slack channel. Development appears responsive to user needs, with support for emerging Android features like Wear OS integrated into the library's evolution.