```--- 🚀 Announcing the duks / crowded-libs Ecosy...
# feed
k
Copy code
---
🚀 Announcing the duks / crowded-libs Ecosystem: Kotlin Multiplatform Libraries for Compose Applications

Hey everyone! I'm excited to share a collection of open-source Kotlin Multiplatform libraries that
evolved from patterns I developed while building SwiftUI apps with shared Kotlin logic. With Jetpack
Compose now available on iOS, I've enhanced these libraries with additional capabilities while providing first-class Compose
Multiplatform support across iOS, Android, Desktop, and Web.

📦 The Libraries

1. duks - Redux-like State Management (<https://github.com/crowded-libs/duks>)
- Type-safe unidirectional data flow with built-in async support
- Saga pattern for complex workflows
- Flexible persistence and middleware system
- StateFlow integration with collectAsState for Compose
- Maven: io.github.crowded-libs:duks:0.2.0

2. duks-routing - Advanced Navigation (<https://github.com/crowded-libs/duks-routing>)
- Multi-layer navigation (scenes, content, modals)
- Built-in authentication and route protection
- Responsive design with device-aware routing
- Feature toggles for A/B testing, or dealing with scenarios like "premium_users"
- Maven: io.github.crowded-libs:duks-routing:0.1.0

3. duks-storage-lmdb - High-Performance Persistence
(<https://github.com/crowded-libs/duks-storage-lmdb>)
- LMDB-based storage with ACID transactions
- Type-safe serialization
- Supports state and saga persistence
- Maven: io.github.crowded-libs:duks-storage-lmdb:0.1.0

4. duks-ga4 - Google Analytics 4 Integration (<https://github.com/crowded-libs/duks-ga4>)
- GA4 Measurement Protocol support
- Automatic action tracking via middleware
- GDPR compliance with consent management
- Offline support and event batching
- Not published to Maven yet, still finalizing the details of the API

5. kotlin-lmdb - Cross-Platform LMDB key/value storage Bindings (<https://github.com/crowded-libs/kotlin-lmdb>)
- Direct LMDB bindings for all platforms
- Memory-mapped performance
- WebAssembly support for browser & Node.js
- Not limited to Compose use-cases
- Maven: io.github.crowded-libs:kotlin-lmdb:0.3.1

🎯 Key Benefits

- True Multiplatform: iOS, Android, Desktop (JVM), Web (JS/WASM)
- Compose First: Optimized for Compose Multiplatform with StateFlow, and convenient AsState extensions.
- Type Safe: Leverages Kotlin's type system throughout
- Performance: Designed for efficiency with caching, batching, and native performance

🛠️ Perfect For

- Teams building Kotlin Multiplatform Compose apps
- Apps needing robust state management and navigation
- Applications requiring offline-first architecture

All libraries are Apache 2.0 licensed and available on Maven Central. Check out the repos for
documentation and examples!

Hopefully others can find these libraries useful as well.
---
👍 1
K 1
I'm biased, but I will say that duks with the saga workflows makes for a very expressive and easy to follow flow for Compose apps. Combine that with routing library and the ability to declare your app composition with the ability to store state and sagas, recovering the state gracefully after application restarts is a great user experience, and stays very declarative throughout. I'll be putting a sample application together that demonstrates all these things working together once I'm done with the ga4 portion of the libraries.