KHex is a Kotlin multiplatform library to deal with hexadecimal encoding and decoding.
It was incubated as part of KEthereum but then extracted as it can be useful outside this context.
This library is available through GitHub Packages.
In order to use it, first include the GitHub Packages maven repository inside your project build.gradle.kts
file:
repositories {
maven {
name = "komputing/KHex GitHub Packages"
url = uri("https://maven.pkg.github.com/komputing/KHex")
credentials {
username = "token"
password = "\u0039\u0032\u0037\u0034\u0031\u0064\u0038\u0033\u0064\u0036\u0039\u0061\u0063\u0061\u0066\u0031\u0062\u0034\u0061\u0030\u0034\u0035\u0033\u0061\u0063\u0032\u0036\u0038\u0036\u0062\u0036\u0032\u0035\u0065\u0034\u0061\u0065\u0034\u0032\u0062"
}
}
}
When 'username' could be anything and 'password' is an encoded access token for public access.
This library is available on Jitpack. The current version is:
In order to use it, first include the Jitpack maven repository inside your project build.gradle
file:
repositories {
maven { url="https://jitpack.io" }
}
Include the modules inside your project:
dependencies {
implementation("com.github.komputing.khex:<module>:<version>")
}
Where <version>
can be either a release or <branch>-SNAPSHOT
such as master-SNAPHOT
.
Module | Description |
---|---|
core |
Contains the core code |
extensions |
Contains useful extension functions |
You can use the functions contained inside this library in order to encode or decode any hexadecimal value.
// Encoding
val myByteValue = 31.toByte()
encode(myByteValue)
val myByteArrayValue = byteArrayOf(31, 32 , 33)
encode(myByteArrayValue)
// Decoding
val myHexString = "0xaa12456789bb"
decode(myHexString)
By including the extensions
module, you will be able to access a list of extensions functions that can be useful when
working with strings and byte arrays/lists.
// ByteArray
byteArrayOf(1, 2, 3).toHexString(prefix = "0x")
byteArrayOf(1, 2, 3).toNoPrefixHexString()
// List<Byte>
listOf(1.toByte(), 2.toByte()).toHexString(prefix = "0x")
listOf(1.toByte(), 2.toByte()).toNoPrefixHexString()
// StringHexString("0xaa12456789bb").hexToByteArray()
HexString("0xaa12456789bb").has0xPrefix()
HexString("aa12456789bb").prepend0xPrefix()
HexString("0xaa12456789bb").clean0xPrefix()
MIT