kmp-tor


Kotlin Multiplatform support for embedding Tor into your application.
val runtime = TorRuntime.Builder(myEnvironment) {
RuntimeEvent.entries().forEach { event ->
observerStatic(event, OnEvent.Executor.Immediate) { data ->
println(data.toString())
}
}
TorEvent.entries().forEach { event ->
observerStatic(event, OnEvent.Executor.Immediate) { data ->
println(data)
}
}
config { environment ->
TorOption.SocksPort.configure { auto() }
}
required(TorEvent.ERR)
required(TorEvent.WARN)
}
myScope.launch {
runtime.startDaemonAsync()
runtime.restartDaemonAsync()
runtime.executeAsync(TorCmd.Signal.NewNym)
runtime.stopDaemonAsync()
}
runtime.startDaemonSync()
runtime.restartDaemonSync()
runtime.executeSync(TorCmd.Signal.NewNym)
runtime.stopDaemonSync()
runtime.enqueue(
Action.StartDaemon,
OnFailure.noOp(),
OnSuccess {
runtime.enqueue(
Action.RestartDaemon,
OnFailure.noOp(),
OnSuccess {
runtime.enqueue(
TorCmd.Signal.NewNym,
OnFailure.noOp(),
OnSuccess {
runtime.enqueue(
Action.StopDaemon,
OnFailure.noOp(),
OnSuccess.noOp(),
)
},
)
},
)
},
)
Get Started
Samples
See kmp-tor-samples