KOP - Kotlin Object Pool

KOP is a Kotlin Multiplatform object pool.
Installation
dependencies {
implementation("io.github.domgew:kop:<current_version>")
implementation("io.github.domgew:kop-jvm:<current_version>")
}
repositories {
mavenCentral()
}
Documentation
See Dokka-generated docs.
Quick Start
typealias ObjectType = Any
suspend fun createObjectInstance(): ObjectType =
TODO()
val objectPool = KotlinObjectPool(
config = KotlinObjectPoolConfig(
maxSize = ,
keepAliveFor = minutes,
strategy = KotlinObjectPoolStrategy.LIFO,
),
) {
createObjectInstance()
}
objectPool = KotlinObjectPool.build {
maxSize()
keepAliveFor(minutes)
strategy(KotlinObjectPoolStrategy.LIFO)
createInstance {
createObjectInstance()
}
}
=
objectPool.withObject { instance ->
instance.call()
}
Targets
Supported Targets:
Examples
Kedis - Kotlin Multiplatform Redis Cache
val kedisConfiguration: KedisConfiguration = TODO()
suspend fun KedisClient.getFromCache(): String =
TODO()
val objectPool = KotlinObjectPool(
KotlinObjectPoolConfig(
maxSize = 4,
keepAliveFor = 1.minutes,
strategy = KotlinObjectPoolStrategy.LIFO,
),
) {
KedisClient(kedisConfiguration)
}
suspend fun getValueWithCache() =
objectPool.withObject { kedisClient: KedisClient ->
kedisClient.getFromCache()
}