How terrakok/kmp-awesome works
1. This repository is a curated knowledge base, not an application or library codebase. Its “architecture” is mostly informational: one README-driven catalog plus a small image asset folder.
2. The primary subsystem is the README itself. It acts as the single source of truth for the project’s content, structure, and navigation. There are no source packages, build scripts, tests, or runtime components in the repo tree.
3. The content model is taxonomy-based. The README organizes the ecosystem into categories such as tooling, logging, networking, storage, device APIs, dependency injection, architecture, analytics, testing, crypto, file I/O, serialization, date-time, async, Compose UI, graphics, service SDKs, arithmetic, resources, and utilities.
4. Each catalog entry follows the same pattern: project name, external repository link, optional Maven Central badge, and a short description. That makes the README function like a structured index rather than prose documentation.
5. The main “data flow” is editorial: maintainers collect Kotlin Multiplatform libraries, verify they support Android and iOS first, confirm Maven Central publication, and then add them into the appropriate category. Consumers browse the list and click out to external library sites.
6. The repository depends heavily on external platforms for meaning and freshness. GitHub hosts the upstream projects, Maven Central provides artifact verification badges, and Awesome/PR badges communicate repository status and contribution openness.
7. The img/ directory is the only local asset boundary. It contains the repository icon and the banner illustration used in the README header, so the visual identity is embedded but kept separate from the curated text content.
8. Governance is explicit and important to the structure. The contribution guide defines acceptance criteria for new entries: real-world usage links, Android + iOS support, Maven Central publication, and a popularity threshold. This acts as the curation policy for the whole repo.
9. The repository’s audience is developers evaluating Kotlin Multiplatform options. Its output is not compiled software but a maintained reference list that helps teams choose libraries across architectural concerns like networking, state management, persistence, UI, and tooling.
10. For an architecture diagram, the correct shape is: maintainer/editors update README and assets → GitHub renders the catalog → readers navigate categories and external links → external library repos and Maven Central provide the referenced implementation and package metadata.
Main entry points: README.MD README · img Image Assets
Components 16
Repository
Local curated content and assets
- README · Single source of truth for the curated KMP library index
README.MD - Curation Rules · Acceptance criteria for adding or keeping entries
README.MD - Image Assets · Local banner and icon used by the README
img
Catalog Taxonomy
Representative README categories
- Tooling · Build, developer, and ecosystem tooling libraries
- Logging · Logging and observability libraries
- Networking · HTTP and network communication libraries
- Storage · Persistence and data storage libraries
- Device APIs · Platform and device integration libraries
- Architecture · Dependency injection and app structure libraries
- Analytics · Tracking and analytics libraries
- Compose UI · UI and Compose-focused libraries
- Serialization · Serialization and data format libraries
External Platforms
Systems the catalog points to and depends on
- Maven Central · Publication and verification source for artifact availability
- GitHub · Hosts the linked upstream library repositories
- Badges · Maven Central and repository badges shown alongside entries
- Developers · People evaluating Kotlin Multiplatform options
Connections 18
- Curation Rules → README: defines · Contribution criteria shape the catalog
- Image Assets → README: supports · Local visuals are embedded in the header
- README → Tooling: indexes · README organizes entries by category
- README → Logging: indexes · README organizes entries by category
- README → Networking: indexes · README organizes entries by category
- README → Storage: indexes · README organizes entries by category
- README → Device APIs: indexes · README organizes entries by category
- README → Architecture: indexes · README organizes entries by category
- README → Analytics: indexes · README organizes entries by category
- README → Compose UI: indexes · README organizes entries by category
- README → Serialization: indexes · README organizes entries by category
- Tooling → GitHub: links out · Each entry points to its upstream repository
- Logging → GitHub: links out · Each entry points to its upstream repository
- Networking → GitHub: links out · Each entry points to its upstream repository
- Storage → Maven Central: verifies · Maven Central publication is an acceptance criterion
- Serialization → Maven Central: verifies · Maven Central publication is an acceptance criterion
- README → Badges: displays · Badges communicate publication and repository status
- Developers → README: browse · Developers navigate the catalog and follow external links