Files
fdroidclient/libs
Tobias_Groza fc6a88c4b7 Fix AppListLiveData.addSource()
With the update to Room 2.7.0 the chunked queries stopped to return distinct values. This is fixed by only processing distinct values when merging the chunked results.
The test case for the chunked quries was also fixed. It did not work properly before because it only tested chunked quries and not the base case which does not need chunked packageInfo
2025-05-30 16:48:41 -03:00
..
2025-05-30 16:48:41 -03:00
2022-09-12 09:46:15 +00:00

F-Droid libraries

Core F-Droid functionality is split into re-usable libraries to make using F-Droid technology in your own projects as easy as possible.

Note that all libraries are still in alpha stage. While they work, their public APIs are still subject to change.

  • download library for handling (multi-platform) HTTP download of repository indexes, APKs and image assets
  • index library for parsing/verifying/creating repository indexes
  • database library to store and query F-Droid related information in a Room-based database on Android

F-Droid multi-platform download library

API docs

Note that advanced security and privacy features are only available for Android:

  • Rejection of TLS 1.1 and older as well as rejection of weak ciphers
  • No DNS requests when using Tor as a proxy
  • short TLS session timeout to prevent tracking and key re-use

Other platforms besides Android have not been tested and might need additional work.

How to include in your project

Add this to your build.gradle file and replace [version] with the latest version:

implementation 'org.fdroid:download:[version]'

F-Droid multi-platform index library

API docs

Note that some features are only available for Android:

  • index signature verification (JarFile is JVM only)
  • index stream processing (InputStream is JVM only)
  • index V2 diffing (reflection is JVM only)
  • app device compatibility checking (requires Android)

Other platforms besides Android have not been tested and might need additional work.

How to include in your project

Add this to your build.gradle file and replace [version] with the latest version:

implementation 'org.fdroid:index:[version]'

F-Droid Android database library

API docs

An Android-only database library to store and query F-Droid related information such as repositories, apps and their versions. This library should bring everything you need to build your own F-Droid client that persists information.

How to include in your project

Add this to your build.gradle file and replace [version] with the latest version:

implementation 'org.fdroid:database:[version]'

Development

You can list available gradle tasks by running the following command in the project root.

./gradlew :libs:download:tasks

Replace download with the name of the library you want to view tasks for.

Making releases

Bump version number in the library's gradle.properties, ensure you didn't break a public API and run:

./gradlew :libs:download:check :libs:download:connectedCheck
./gradlew :libs:download:publish
./gradlew closeAndReleaseRepository

Replace download with the name of the library you want to publish.

See https://github.com/vanniktech/gradle-maven-publish-plugin#gradle-maven-publish-plugin for more information.

License

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0