Skip to content
forked from wireapp/kalium

๐ŸŒ An under-development SDK used to create a Wire client on Android and JVM. Expanding to iOS and Web.

License

Notifications You must be signed in to change notification settings

Krzysiudan/kalium

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Kalium Logo

Kalium

JVM & JS Tests codecov

How to build

GitHub Packages authentication

In order to download some open source libraries published on GitHub Pacakges, a GitHub Personal Access Token is needed with packages:read scope.

  1. You can generate one quickly on this page. Or, for more details, see Creating a personal access token.

  2. In local.properties add:

github.package_registry.user=<github_username>
github.package_registry.token=<github_token>

Alternatively the credentials are also read from your environment if GITHUB_USER and GITHUB_TOKEN exists.

Note: See GitHub packages docs for more details and.

Dependencies

Supported Platforms

  • Android (see the Android Reloaded module)
  • JVM (see the cli module)
  • iOS (partially)
  • JavaScript (just a tiny bit)

The cli can be executed on the terminal of any machine that satisfies the dependencies mentioned above, and is capable of actions like:

  • Logging in
  • Create a group conversation
  • Add user to group conversation
  • Receive and send text messages in real time
  • Remove another client from your account remotely
  • Refill MSL key packages

Building dependencies on macOS 12

Just run make, which will download and compile dependencies listed above from source, the output will be $PROJECT_ROOT$/native/libs

Running on your machine

When running any tasks that require the native libraries (libsodium, cryptobox-c and cryptobox4j), you need to pass their location as VM options like so:

-Djava.library.path=./path/to/native/libraries/mentioned/before

For example, if you want to run the task jvmTest and the libraries are in ./native/libs:

./gradlew jvmTest -Djava.library.path=./native/libs

Running the CLI

JVM

Run the following with the native libs in the classpath (-Djava.library.path=/usr/local/lib/:./native/libs):

./gradlew :cli:assemble
java -Djava.library.path=/usr/local/lib/:./native/libs -jar cli/build/libs/cli.jar login 

or if you want the jar file deleted after your run:

./gradlew :cli:run --args="login" -Djava.library.path=/usr/local/lib/:./native/libs
Native (Mac)

For running on arm64 mac

./gradlew :cli:macosArm64Binaries
./cli/build/bin/macosArm64/debugExecutable/cli.kexe login

For running on intel mac

./gradlew :cli:macosX64Binaries
./cli/build/bin/macosX64/debugExecutable/cli.kexe login

Detekt rules

We use and try to maintain our codestyle uniformed, so apart from having our checks in place in our CI. You can have live feedback using the IDE, here is how:

  1. IntelliJ -> Settings -> Plugins -> Marketplace -> Search and install "Detekt"

  2. Settings -> Tools -> Detekt -> set: (replace $PROJECT_ROOT accordingly to your machine)

    • Configuration Files: $PROJECT_ROOT/detekt/detekt.yml
    • Baseline File: $PROJECT_ROOT/detekt/baseline.yml (optional)
    • Plugin Jars: $PROJECT_ROOT/detekt-rules/build/libs/detekt-rules.jar (this will add our custom rules to provide live feedback)

or

You can run locally in your terminal:

./gradlew clean detekt

Logo

The logo is adapted from OpenMoji โ€“ the open-source emoji and icon project. License: CC BY-SA 4.0

About

๐ŸŒ An under-development SDK used to create a Wire client on Android and JVM. Expanding to iOS and Web.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Kotlin 99.8%
  • Other 0.2%