This project is focused on the packaging and distribution of pre-compiled tor
resources
for Kotlin Multiplatform, primarily to be consumed as a dependency for kmp-tor.
Tor and its dependencies are compiled from source using the following versions
git tag | |
---|---|
libevent | release-2.1.12-stable |
openssl | openssl-3.2.2 |
tor | tor-0.4.8.12 |
xz | v5.6.2 |
zlib | v1.3.1 |
NOTE: All macOS
and Windows
compilations are code signed so they work out of the box.
More details about how things are compiled can be found HERE
x86 | x86_64 | armv7 | aarch64 | ppc64 | |
---|---|---|---|---|---|
Windows | ✔ | ✔ | |||
macOS | ✔ | ✔ | |||
Linux (android) | ✔ | ✔ | ✔ | ✔ | |
Linux (libc) | ✔ | ✔ | ✔ | ✔ | ✔ |
Linux (musl) | |||||
FreeBSD |
exec
& noexec
)2 types of resources are available; exec
and noexec
. This is to support platforms where process
execution is not allowed (e.g. iOS
).
resource-exec-tor
and its -gpl
variant:
ResourceLoader.Tor.Exec
iOS
resource-noexec-tor
and its -gpl
variant:
ResourceLoader.Tor.NoExec
Node.js
Even though tremendous work has gone into making the noexec
dependencies as safe as possible by
unloading tor
after each invocation of tor_run_main
, there is no safer way to run tor
than in
its own process (as it was designed). The exec
dependency should be utilized whenever possible.
tor
& tor-gpl
)2 variants of tor
are compiled; 1 with the flag --enable-gpl
, and 1 without it.
Publications with the -gpl
suffix are indicative of the presence of the --enable-gpl
compile
time flag.
Both variants are positionally identical with the same package names, classes, resource
names/locations, etc. The only difference between them are the compilations of tor
being provided.
Only 1 variant can be had for a project, as a conflict will occur if both are present.
This is to respect the GPL
licensed code tor
is utilizing such that projects who
have a GPL
license are able to take advantage of the new functionality, and projects who do
not have a GPL
license can still utilize tor
without infringing on the license.
Currently, there is only a SNAPSHOT
publication in order to work on kmp-tor 2.0.0
.
Once that work is complete a Release will be made for kmp-tor-resource
.