Kotlin

Kotlin SDK

Official Kotlin SDK for Fluxum API

WebSocket-based
End-to-end encryption
Coroutines support
Kotlin 1.8+

Quick Start

Get up and running with the Fluxum Kotlin SDK in minutes

Using gradle

implementation("com.fluxum:fluxum-sdk-kotlin:0.1.0")

Coroutines Support

Built with Kotlin coroutines for asynchronous programming and Android integration.

Security

Built-in client-side encryption with optional custom encryption keys for maximum security.

Analytics

Comprehensive analytics tracking for connections, jobs, and rate limits with Kotlin flows.

Event Handling

Handle real-time events with the SDK

val eventListener = object : SDKEventListener {
    override fun onConnect() {
        println("Connected to Fluxum server")
    }
    
    override fun onAuthenticated(data: AuthData) {
        println("Authentication successful: ${data.clientId}")
    }
    
    override fun onDisconnected(data: DisconnectData) {
        println("Disconnected: ${data.reason}")
    }
    
    override fun onJobUpdate(update: JobUpdate) {
        println("Job update: ${update.jobId}, ${update.status}")
    }
    
    override fun onError(error: String) {
        println("Error: $error")
    }
}

sdk.addEventListener(eventListener)

Job Submission Examples

Examples of different job types and configurations

Simple GET Request

val requestData = mapOf(
    "url" to "https://api.example.com/data",
    "method" to "GET",
    "headers" to mapOf(
        "Authorization" to "Bearer your-token"
    )
)

val jobPayload = JobPayload(requestData)
val jobId = sdk.submitJob(jobPayload)

Advanced Features

Advanced configuration and features

Custom Encryption

val sdk = FluxumSDK(FluxumSDKOptions.builder()
    .apiKey("your-api-key")
    .enableClientSideEncryption(true)
    .encryptionKey("your-custom-encryption-key")
    .build())

Connection Management

// Manual connection
sdk.connect()

// Disconnect
sdk.disconnect()

// Check connection status
if (sdk.isConnected()) {
    println("Connected")
}

// Reconnect
sdk.reconnect()

Analytics

// Get analytics data
val analytics = sdk.getAnalytics()

println("Total jobs: ${analytics.totalJobs}")
println("Successful jobs: ${analytics.successfulJobs}")
println("Failed jobs: ${analytics.failedJobs}")
println("Average response time: ${analytics.averageResponseTime}")

// Reset analytics
sdk.resetAnalytics()

Error Handling

Comprehensive error handling and recovery

val robustEventListener = MyEventListener{}
sdk.AddEventListener(robustEventListener)

Requirements

System requirements and dependencies

Kotlin Version

Kotlin 1.8.0 or higher

Dependencies

  • com.fluxum:fluxum-sdk-kotlin (Kotlin SDK)
  • kotlinx-coroutines (coroutines support)
  • okhttp (HTTP client)
  • kotlinx-serialization (JSON serialization)

API Reference

Complete API documentation

Constructor

FluxumSDK(options: FluxumSDKOptions)

data class FluxumSDKOptions(
    val apiKey: String,
    val autoConnect: Boolean = true,
    val enableAnalytics: Boolean = true,
    val enableClientSideEncryption: Boolean = true,
    val maxReconnectAttempts: Int = 5,
    val reconnectDelay: Long = 1000,
    val connectionTimeout: Long = 30000,
    val logLevel: String = "info"
)

Methods

// Connection
fun connect()
fun disconnect()
fun reconnect()

// Status
val isConnected: Boolean
val isAuthenticated: Boolean

// Jobs
fun submitJob(payload: JobPayload): CompletableFuture<String>
fun cancelJob(jobId: String): CompletableFuture<Unit>

// Analytics
fun getAnalytics(): AnalyticsData
fun resetAnalytics()

// Events
fun addEventListener(listener: SDKEventListener)
fun removeEventListener(listener: SDKEventListener)