Popularity
4.0
Stable
Activity
1.0
-
49
8
8

Programming language: Kotlin
License: Creative Commons Zero v1.0 Universal
Tags: Misc    
Latest version: v2.0.1

kds alternatives and similar libraries

Based on the "Misc" category.
Alternatively, view kds alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of kds or a related project?

Add another 'Misc' Library

README

Kds is a Data Structure library for Multiplatform Kotlin 1.3. It includes a set of optimized data structures written in Kotlin Common so they are available in JVM, JS and future multiplatform targets. Those structures are designed to be allocation-efficient and fast, so Kds include specialized versions for primitives like Int or Double.

<!-- BADGES --> <!-- /BADGES -->

<!-- SUPPORT --> Support kds If you like kds, or want your company logo here, please consider becoming a sponsor โ˜…, in addition to ensure the continuity of the project, you will get exclusive content. <!-- /SUPPORT -->

Full Documentation: https://korlibs.soywiz.com/kds/

Some samples:

// Case Insensitive Map
val map = mapOf("hELLo" to 1, "World" to 2).toCaseInsensitiveMap()
println(map["hello"])

// BitSet
val array = BitSet(100) // Stores 100 bits
array[99] = true

// TypedArrayList
val v20 = intArrayListOf(10, 20).getCyclic(-1)

// Deque
val deque = IntDeque().apply {
    addFirst(n)
    removeFirst()
    addLast(n)
}

// CacheMap
val cache = CacheMap<String, Int>(maxSize = 2).apply {
    this["a"] = 1
    this["b"] = 2
    this["c"] = 3
    assertEquals("{b=2, c=3}", this.toString())
}

// IntIntMap
val m = IntIntMap().apply {
    this[0] = 98
}

// Pool
val pool = Pool { Demo() }
pool.alloc { demo ->
    println("Temporarilly allocated $demo")
}

// Priority Queue
val pq = IntPriorityQueue()
pq.add(10)
pq.add(5)
pq.add(15)
assertEquals(5, pq.removeHead())

// Extra Properties
class Demo : Extra by Extra.Mixin() { val default = 9 }
var Demo.demo by Extra.Property { 0 }
var Demo.demo2 by Extra.PropertyThis<Demo, Int> { default }
val demo = Demo()
assertEquals(0, demo.demo)
assertEquals(9, demo.demo2)
demo.demo = 7
assertEquals(7, demo.demo)
assertEquals("{demo=7, demo2=9}", demo.extra.toString())

// mapWhile
val iterator = listOf(1, 2, 3).iterator()
assertEquals(listOf(1, 2, 3), mapWhile({ iterator.hasNext() }) { iterator.next()})

// And much more!

Usage with gradle:

def kdsVersion = "..." //the latest version here (you can find it at the top of the README)

repositories {
    maven { url "https://dl.bintray.com/korlibs/korlibs" }
}

dependencies {
    // For multiplatform projects
    implementation "com.soywiz.korlibs.kds:kds:$kdsVersion"

    // For JVM/Android only
    implementation "com.soywiz.korlibs.kds:kds-jvm:$kdsVersion"
    // For JS only
    implementation "com.soywiz.korlibs.kds:kds-js:$kdsVersion"
}

// settigs.gradle
enableFeaturePreview('GRADLE_METADATA')