Initial commit

This commit is contained in:
vfsfitvnm
2022-06-02 18:59:18 +02:00
commit 1e673ad582
160 changed files with 10800 additions and 0 deletions

1
ktor-client-brotli/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/build

View File

@@ -0,0 +1,12 @@
plugins {
kotlin("jvm")
}
sourceSets.all {
java.srcDir("src/$name/kotlin")
}
dependencies {
implementation(libs.ktor.client.encoding)
implementation(libs.brotli)
}

View File

@@ -0,0 +1,16 @@
package io.ktor.client.plugins.compression
import io.ktor.utils.io.*
import io.ktor.utils.io.jvm.javaio.*
import kotlinx.coroutines.CoroutineScope
import org.brotli.dec.BrotliInputStream
internal object BrotliEncoder : ContentEncoder {
override val name: String = "br"
override fun CoroutineScope.encode(source: ByteReadChannel) =
error("BrotliOutputStream not available (https://github.com/google/brotli/issues/715)")
override fun CoroutineScope.decode(source: ByteReadChannel): ByteReadChannel =
BrotliInputStream(source.toInputStream()).toByteReadChannel()
}

View File

@@ -0,0 +1,5 @@
package io.ktor.client.plugins.compression
fun ContentEncoding.Config.brotli(quality: Float? = null) {
customEncoder(BrotliEncoder, quality)
}