Skip to content

Latest commit

 

History

History
83 lines (76 loc) · 5.15 KB

DEPENDENCIES.md

File metadata and controls

83 lines (76 loc) · 5.15 KB

Project: Gimli's Dependencies

Dependencies are listed the following way:

  • Dependency Name (identifier; LICENSE), usage

Dependency versions can be found in gradle.properties, listed under their identifier. Additionally, library-specific utilities can be found as a subproject of the :util project, named the as that library's identifier.

This list isn't complete. If you spot any mistakes or dependencies we haven't mentioned, feel free to PR. Note this list contains behaviour that is planned, but not yet implemented. Note we try including noteworthy dependencies only, that is, software either used directly by Gimli, or essential to the functionality of a dependency.

For a list of protocols implemented by Project: Gimli, see FEDERATION.md.

Alphabetically Sorted List of Dependencies

  • Binary Compatibility Validator (abi; Apache 2.0), generates files describing public API signatures, for usage with git diff.
  • Compose Multiplatform (Apache 2.0), a Kotlin UI framework developed by Google for Android, and ported to Kotlin/Multiplatform by JetBrains.
  • Dokka (dokka; Apache 2.0), a documentation website generator for Kotlin.
  • Exposed (exposed; Apache 2.0), SQL for Kotlin/JVM.
  • Extism Java SDK (BSD 3-Clause), a source-visible WebAssembly host. Temporarily used by Gimli's official clients to interact with OpenMLS, and will be replaced by AndroidX's Messaging Layer Security implementation.
  • Gradle (Apache 2.0), build system and package manager for Kotlin projects.
  • IntelliJ Markdown (Apache 2.0), a Kotlin/Multiplatform Markdown-to-HTML compiler, supporting various flavours.
  • Jakarta (jakarta; EPL 2.0), formerly known as JavaX and Java Enterprise, an extension to Java's standard library.
  • Java Virtual Machine (jdk; GPL 2.0 with Classpath Exception), a virtual machine running Gimli's servers and clients (except for the web app). Any distribution of the JVM works, but Gimli mostly uses Eclipse Temurin and JetBrains Runtime.
  • Kotlin (kotlin; Apache 2.0), the multiplatform language Gimli is written in.
  • Kotlin Logging (klogging; Apache 2.0), a multiplatform logging library.
  • KotlinX Atomicfu (atomicfu; Apache 2.0), makes atomic operations easier to work with.
  • KotlinX Datetime (datetime; Apache 2.0), date and time utilities.
  • KotlinX Immutable Collections (collections; Apache 2.0), safe immutable collections.
  • KotlinX Coroutines (coroutines; Apache 2.0), structured concurrency.
  • KotlinX Kover (kover; Apache 2.0), test coverage report generator.
  • KotlinX Serialization (serialization; Apache 2.0), a Kotlin/Multiplatform compile-time serialization library.
  • Ktor (ktor; Apache 2.0), a Kotlin/Multiplatform server- and client-sided networking library.
  • Logback (logback; EPL 1.0, LGPL 2.1), an implementation of the SLF4J API.
  • Multiplatform Markdown Renderer (Apache 2.0), a Compose Multiplatform Markdown renderer.
  • Okio (Apache 2.0), an unofficial Kotlin/Multiplatform IO library, to be replaced by the official KotlinX IO.
  • OpenMLS (MIT), an implementation of the Messaging Layer Security protocol written in Rust.
  • PGJDBC (postgres; BSD 2-Clause), The official Java Database Connectivity API driver for PostgreSQL.
  • PostgreSQL (PostgreSQL License), an open source SQL dialect.
  • SLF4J (MIT), a logging API for the JVM, unifying the various logging frameworks it has. Used by Kotlin Logging on the JVM.
  • Titanium (titanium; Apache 2.0), an implementation of JsonLD written in Java.
  • Uri KMP (uri; Apache 2.0) Lightweight URI parser for Kotlin/Multiplatform.
  • WebAssembly (Apache 2.0), a modular virtual machine runnable both standalone and within the browser. Gimli's web client compiles to Wasm, and official clients use Wasm libraries via Extism.
  • Yumi Gradle Licenser (licenser; MPL 2.0), an automatic license header generator for Gradle.