{"repo":"ioannisa/KSafe","free":true,"listed":false,"github":"https://github.com/ioannisa/KSafe","clone":"git clone https://github.com/ioannisa/KSafe.git","description":"A library for saving key/value pair data for Kotlin Multiplatform and Android. Encryption enabled by default, with option for Plain (unencrypted) storage. Supports Property Delegates, Flow/StateFlow, with Jetpack Compose and biometrics integration using hardware-backed encryption.","language":"Kotlin","stars":329,"topics":["kotlin","android-keystore","datastore-preferences","encrypted-store","encryption","ios-keychain","keyvaluestore","kotlin-android","kotlin-ios","kotlin-js"],"license":"Apache-2.0","category":"security-tools","readme_excerpt":"KSafe — Universal Key/Value Persistence for Kotlin Multiplatform and Android Encrypted by default. Plain (unencrypted) when needed. Persist variables, Compose State, StateFlow, and serializable objects across Android, iOS, macOS, Desktop, and Web Easy to use by design — plus key rotation, cross-platform biometrics, and an encryption preflight What is KSafe? KSafe is a secure-by-default Kotlin Multiplatform key/value persistence library. Persist ordinary Kotlin variables, Compose MutableState , MutableStateFlow , and @Serializable objects across app restarts with one API on Android, iOS, macOS, JVM/Desktop, WASM, and Kotlin/JS. Encrypted (AES-256-GCM) by default; plain per-entry with mode = KSafeWriteMode.Plain . Read and write it like any normal Kotlin variable — no suspend , no runBlocking , no DataStore boilerplate, no explicit encrypt / decrypt . Reads hit a hot in-memory cache ( 0.002 ms under plaintext policies; ENCRYPTED entries run a decrypt on every access — a keystore round-trip on hardware-backed paths — and the very first read after cold start briefly blocks to warm the cache); writes encrypt and flush in the background — synchronous, but never blocking . Reach for the suspend API ( get / put ) only when you want to await the disk flush. - Easy? ✔ one-line setup, property-delegate API - Encrypted by default? ✔ AES-256-GCM, hardware-backed where available - Plain storage? ✔ opt out with one parameter - Synchronous? ✔ non-blocking hot-cache reads - Asynchronous? ✔ fu","default_branch":null,"files":null,"tree":[],"storefront":"/r/ioannisa","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/ioannisa/KSafe/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}