google/guavaPublic

Google core libraries for Java

AI summary: A comprehensive suite of core Google Java libraries providing essential utilities, collections, and concurrency tools.

Stars
51.9K
Forks
11.2K
Watchers
2.3K
Open issues
615
Open PRs
133
Contributors
~492
Commits
7.5K
Branches
52

JavaApache-2.0Created May 29, 2014Last push 3d agoLatest release v33.7.1+5 stars this week+20 this month

Quick answers

What is guava?
A comprehensive suite of core Google Java libraries providing essential utilities, collections, and concurrency tools.
What does guava do?
Guava is a robust, open-source set of core libraries for Java developed and heavily utilized by Google. It significantly extends the standard Java library by providing advanced, highly optimized implementations for collections, caching mechanisms, concurrency utilities, and string processing. The framework includes specialized graph libraries, functional programming idioms, and I/O utilities that simplify complex enterprise-scale development. By offering thoroughly tested, thread-safe, and performant data structures, Guava reduces boilerplate code and helps developers avoid common pitfalls when building large, concurrent Java applications.
Who is guava for?
Java developers building complex, enterprise-scale applications, backend services, or foundational libraries prioritizing robust coding standards and thread safety.
How do I get started with guava?
Add the dependency to your build tool (e.g., Maven: <groupId>com.google.guava</groupId>).
How popular is guava on GitHub?
google/guava has 51,913 stars and 11,207 forks on GitHub, and gained 5 stars in the last 7 days.
What license does guava use?
google/guava is released under the Apache-2.0 license.

Star history

since Oct 26, 2014
020K40KOct 2014Oct 2018Sep 2022Oct 2026
51.9K stars as of Oct 2, 2026. Before Aug 7, 2026, reconstructed from public GitHub event archives (checked against the repository's real star total); since then measured daily.

Contribution activity

commits per day, last 52 weeks
OctNovDecJanFebMarAprMayJunJulAugSepMonWedFri2025-10-05: 0 commits2025-10-06: 4 commits2025-10-07: 2 commits2025-10-08: 2 commits2025-10-09: 1 commit2025-10-10: 2 commits2025-10-11: 1 commit2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 1 commit2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 1 commit2025-10-22: 1 commit2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 4 commits2025-10-29: 1 commit2025-10-30: 2 commits2025-10-31: 1 commit2025-11-01: 1 commit2025-11-02: 0 commits2025-11-03: 1 commit2025-11-04: 1 commit2025-11-05: 1 commit2025-11-06: 1 commit2025-11-07: 1 commit2025-11-08: 0 commits2025-11-09: 0 commits2025-11-10: 1 commit2025-11-11: 2 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 2 commits2025-11-18: 1 commit2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 1 commit2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 1 commit2025-12-02: 0 commits2025-12-03: 2 commits2025-12-04: 2 commits2025-12-05: 2 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 2 commits2025-12-09: 3 commits2025-12-10: 0 commits2025-12-11: 6 commits2025-12-12: 1 commit2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 2 commits2025-12-16: 3 commits2025-12-17: 0 commits2025-12-18: 1 commit2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 4 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 1 commit2025-12-30: 1 commit2025-12-31: 0 commits2026-01-01: 1 commit2026-01-02: 1 commit2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 2 commits2026-01-06: 1 commit2026-01-07: 0 commits2026-01-08: 1 commit2026-01-09: 1 commit2026-01-10: 1 commit2026-01-11: 0 commits2026-01-12: 6 commits2026-01-13: 1 commit2026-01-14: 0 commits2026-01-15: 0 commits2026-01-16: 0 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 0 commits2026-01-21: 0 commits2026-01-22: 0 commits2026-01-23: 2 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 2 commits2026-01-27: 1 commit2026-01-28: 2 commits2026-01-29: 3 commits2026-01-30: 1 commit2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 2 commits2026-02-03: 1 commit2026-02-04: 0 commits2026-02-05: 2 commits2026-02-06: 1 commit2026-02-07: 0 commits2026-02-08: 0 commits2026-02-09: 1 commit2026-02-10: 1 commit2026-02-11: 2 commits2026-02-12: 1 commit2026-02-13: 0 commits2026-02-14: 0 commits2026-02-15: 0 commits2026-02-16: 0 commits2026-02-17: 1 commit2026-02-18: 2 commits2026-02-19: 6 commits2026-02-20: 0 commits2026-02-21: 0 commits2026-02-22: 0 commits2026-02-23: 3 commits2026-02-24: 3 commits2026-02-25: 2 commits2026-02-26: 2 commits2026-02-27: 1 commit2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 5 commits2026-03-03: 4 commits2026-03-04: 3 commits2026-03-05: 0 commits2026-03-06: 2 commits2026-03-07: 3 commits2026-03-08: 1 commit2026-03-09: 1 commit2026-03-10: 4 commits2026-03-11: 0 commits2026-03-12: 5 commits2026-03-13: 3 commits2026-03-14: 0 commits2026-03-15: 1 commit2026-03-16: 5 commits2026-03-17: 5 commits2026-03-18: 2 commits2026-03-19: 1 commit2026-03-20: 0 commits2026-03-21: 0 commits2026-03-22: 0 commits2026-03-23: 2 commits2026-03-24: 0 commits2026-03-25: 0 commits2026-03-26: 0 commits2026-03-27: 0 commits2026-03-28: 0 commits2026-03-29: 0 commits2026-03-30: 0 commits2026-03-31: 2 commits2026-04-01: 2 commits2026-04-02: 1 commit2026-04-03: 2 commits2026-04-04: 1 commit2026-04-05: 1 commit2026-04-06: 8 commits2026-04-07: 3 commits2026-04-08: 1 commit2026-04-09: 2 commits2026-04-10: 2 commits2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 2 commits2026-04-14: 5 commits2026-04-15: 6 commits2026-04-16: 4 commits2026-04-17: 4 commits2026-04-18: 0 commits2026-04-19: 0 commits2026-04-20: 2 commits2026-04-21: 2 commits2026-04-22: 2 commits2026-04-23: 2 commits2026-04-24: 3 commits2026-04-25: 0 commits2026-04-26: 0 commits2026-04-27: 5 commits2026-04-28: 3 commits2026-04-29: 0 commits2026-04-30: 6 commits2026-05-01: 3 commits2026-05-02: 1 commit2026-05-03: 1 commit2026-05-04: 3 commits2026-05-05: 1 commit2026-05-06: 1 commit2026-05-07: 0 commits2026-05-08: 2 commits2026-05-09: 0 commits2026-05-10: 1 commit2026-05-11: 1 commit2026-05-12: 1 commit2026-05-13: 0 commits2026-05-14: 1 commit2026-05-15: 1 commit2026-05-16: 1 commit2026-05-17: 0 commits2026-05-18: 0 commits2026-05-19: 2 commits2026-05-20: 2 commits2026-05-21: 0 commits2026-05-22: 2 commits2026-05-23: 0 commits2026-05-24: 0 commits2026-05-25: 0 commits2026-05-26: 1 commit2026-05-27: 3 commits2026-05-28: 1 commit2026-05-29: 3 commits2026-05-30: 0 commits2026-05-31: 0 commits2026-06-01: 1 commit2026-06-02: 2 commits2026-06-03: 3 commits2026-06-04: 2 commits2026-06-05: 0 commits2026-06-06: 1 commit2026-06-07: 0 commits2026-06-08: 1 commit2026-06-09: 0 commits2026-06-10: 0 commits2026-06-11: 1 commit2026-06-12: 2 commits2026-06-13: 0 commits2026-06-14: 0 commits2026-06-15: 4 commits2026-06-16: 1 commit2026-06-17: 0 commits2026-06-18: 2 commits2026-06-19: 1 commit2026-06-20: 1 commit2026-06-21: 0 commits2026-06-22: 3 commits2026-06-23: 2 commits2026-06-24: 4 commits2026-06-25: 9 commits2026-06-26: 8 commits2026-06-27: 0 commits2026-06-28: 2 commits2026-06-29: 2 commits2026-06-30: 4 commits2026-07-01: 1 commit2026-07-02: 1 commit2026-07-03: 0 commits2026-07-04: 0 commits2026-07-05: 0 commits2026-07-06: 4 commits2026-07-07: 2 commits2026-07-08: 1 commit2026-07-09: 0 commits2026-07-10: 3 commits2026-07-11: 0 commits2026-07-12: 0 commits2026-07-13: 4 commits2026-07-14: 0 commits2026-07-15: 3 commits2026-07-16: 3 commits2026-07-17: 0 commits2026-07-18: 0 commits2026-07-19: 1 commit2026-07-20: 1 commit2026-07-21: 2 commits2026-07-22: 0 commits2026-07-23: 0 commits2026-07-24: 2 commits2026-07-25: 0 commits2026-07-26: 0 commits2026-07-27: 1 commit2026-07-28: 3 commits2026-07-29: 0 commits2026-07-30: 2 commits2026-07-31: 3 commits2026-08-01: 0 commits2026-08-02: 0 commits2026-08-03: 1 commit2026-08-04: 1 commit2026-08-05: 2 commits2026-08-06: 1 commit2026-08-07: 1 commit2026-08-08: 0 commits2026-08-09: 0 commits2026-08-10: 3 commits2026-08-11: 4 commits2026-08-12: 0 commits2026-08-13: 0 commits2026-08-14: 1 commit2026-08-15: 2 commits2026-08-16: 0 commits2026-08-17: 1 commit2026-08-18: 2 commits2026-08-19: 1 commit2026-08-20: 1 commit2026-08-21: 2 commits2026-08-22: 0 commits2026-08-23: 0 commits2026-08-24: 3 commits2026-08-25: 4 commits2026-08-26: 4 commits2026-08-27: 0 commits2026-08-28: 3 commits2026-08-29: 0 commits2026-08-30: 2 commits2026-08-31: 3 commits2026-09-01: 4 commits2026-09-02: 3 commits2026-09-03: 0 commits2026-09-04: 1 commit2026-09-05: 0 commits2026-09-06: 0 commits2026-09-07: 0 commits2026-09-08: 3 commits2026-09-09: 2 commits2026-09-10: 2 commits2026-09-11: 0 commits2026-09-12: 0 commits2026-09-13: 0 commits2026-09-14: 0 commits2026-09-15: 1 commit2026-09-16: 0 commits2026-09-17: 1 commit2026-09-18: 6 commits2026-09-19: 0 commits2026-09-20: 0 commits2026-09-21: 1 commit2026-09-22: 1 commit2026-09-23: 3 commits2026-09-24: 4 commits2026-09-25: 0 commits2026-09-26: 1 commit2026-09-27: 0 commits2026-09-28: 3 commits2026-09-29: 0 commits2026-09-30: 0 commits2026-10-01: 0 commits2026-10-02: 0 commits2026-10-03: 0 commits
445 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Landmark project

    51,913 stars

  • Battle-tested

    12 years of history

  • Community-driven

    ~492 contributors

  • Well documented

    High community health score

  • Permissive license

    Apache-2.0

  • Continuous integration

    Automated checks passing

  • Repeat trending

    4 trending appearances

What guava does

Guava is a robust, open-source set of core libraries for Java developed and heavily utilized by Google. It significantly extends the standard Java library by providing advanced, highly optimized implementations for collections, caching mechanisms, concurrency utilities, and string processing. The framework includes specialized graph libraries, functional programming idioms, and I/O utilities that simplify complex enterprise-scale development. By offering thoroughly tested, thread-safe, and performant data structures, Guava reduces boilerplate code and helps developers avoid common pitfalls when building large, concurrent Java applications.

Java developers building complex, enterprise-scale applications, backend services, or foundational libraries prioritizing robust coding standards and thread safety.

  • Advanced Collection Types: Introduces powerful new data structures like Multiset, Multimap, BiMap, and comprehensive immutable collections.
  • Robust Caching Utilities: Provides a highly configurable, thread-safe, in-memory caching mechanism with automatic eviction policies.
  • Concurrency Enhancements: Offers powerful extensions to Java's concurrency utilities, including ListenableFuture and Service abstractions.
  • Comprehensive Graph Library: Includes a full suite of robust data structures and algorithms for modeling and analyzing complex graphs.
  • String and I/O Utilities: Streamlines common text processing, hashing, and file manipulation tasks with highly optimized helper classes.

Where teams use it

Immutable data modeling

Developers use Guava's immutable collections to guarantee data integrity and thread safety when passing configurations across complex services.

High-performance in-memory caching

Engineers implement the built-in CacheBuilder to quickly create a thread-safe, self-expiring local cache for frequently accessed database queries.

Asynchronous workflow orchestration

Teams leverage ListenableFuture to safely chain multiple asynchronous, non-blocking network requests in high-throughput backend systems.

Complex dependency modeling

Architects elegantly model complex dependencies and routing algorithms using the comprehensive built-in graph library.

Getting started: Add the dependency to your build tool (e.g., Maven: <groupId>com.google.guava</groupId>).

README

master branch

Guava: Google Core Libraries for Java

GitHub Release CI OpenSSF Best Practices

Guava is a set of core Java libraries from Google that includes new collection types (such as multimap and multiset), immutable collections, a graph library, and utilities for concurrency, I/O, hashing, primitives, strings, and more! It is widely used on most Java projects within Google, and widely used by many other companies as well.

Guava comes in two flavors:

Adding Guava to your build

Guava's Maven group ID is com.google.guava, and its artifact ID is guava. Guava provides two different "flavors": one for use on a (Java 8+) JRE and one for use on Android or by any library that wants to be compatible with Android. These flavors are specified in the Maven version field as either 33.7.1-jre or 33.7.1-android. For more about depending on Guava, see using Guava in your build.

To add a dependency on Guava using Maven, use the following:

<dependency>
  <groupId>com.google.guava</groupId>
  <artifactId>guava</artifactId>
  <version>33.7.1-jre</version>
  <!-- or, for Android: -->
  <version>33.7.1-android</version>
</dependency>

To add a dependency using Gradle:

dependencies {
  // Pick one:

  // 1. Use Guava in your implementation only:
  implementation("com.google.guava:guava:33.7.1-jre")

  // 2. Use Guava types in your public API:
  api("com.google.guava:guava:33.7.1-jre")

  // 3. Android - Use Guava in your implementation only:
  implementation("com.google.guava:guava:33.7.1-android")

  // 4. Android - Use Guava types in your public API:
  api("com.google.guava:guava:33.7.1-android")
}

For more information on when to use api and when to use implementation, consult the Gradle documentation on API and implementation separation.

Snapshots and Documentation

Snapshots of Guava built from the master branch are available through Maven using version 999.0.0-HEAD-jre-SNAPSHOT, or 999.0.0-HEAD-android-SNAPSHOT for the Android flavor.

Snapshot API Javadoc as well as Snapshot API Diffs are also available.

Another easy way to get to the Javadoc is to open guava.dev/api. You can also jump right to a specific class by appending the class name to guava.dev. For example, guava.dev/ImmutableList!

Learn about Guava

Links

IMPORTANT WARNINGS

  1. APIs marked with the @Beta annotation at the class or method level are subject to change. They can be modified in any way, or even removed, at any time. If your code is a library itself (i.e., it is used on the CLASSPATH of users outside your own control), you should not use beta APIs unless you repackage them. If your code is a library, we strongly recommend using the Guava Beta Checker to ensure that you do not use any @Beta APIs!

  2. APIs without @Beta will remain binary-compatible for the indefinite future. (Previously, we sometimes removed such APIs after a deprecation period. The last release to remove non-@Beta APIs was Guava 21.0.) Even @Deprecated APIs will remain (again, unless they are @Beta). We have no plans to start removing things again, but officially, we're leaving our options open in case of surprises (like, say, a serious security problem).

  3. Guava has one dependency that is needed for linkage at runtime: com.google.guava:failureaccess:1.0.3. It also has some annotation-only dependencies, which we discuss in more detail at that link.

  4. Serialized forms of ALL objects are subject to change unless noted otherwise. Do not persist these and assume they can be read by a future version of the library.

  5. Our classes are not designed to protect against a malicious caller. You should not use them for communication between trusted and untrusted code.

  6. For the mainline flavor, we test the libraries using a range of OpenJDK versions on Linux and Windows. Some features, especially in com.google.common.io, may not work correctly in non-Linux environments. For the Android flavor, our unit tests also run on API level 24 (Nougat).

View on GitHub

Recent activity

commits and pull requests

Recent open issues

view all

Releases and announcements

60 total
  1. 33.7.1v33.7.1Aug 18, 2026

    ### Maven ```xml <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>33.7.1-jre</version> <!-- or, for Android: --> <version>33.7.1-android</version> </dependency> ``` ### Jar files - [33.7.1-jre.jar](https://repo1.maven.org/maven2/com/google/guava/guava/33.7.1-jre/guava-33.7.1-jre.jar) - [33.7.1-android.jar](https://repo1.maven.org/maven2/com/google/guava/guava/33.7.1-android/guava-33.7.1-android.jar) Guava requires [one runtime dependency](https://github.com/google/guava/wiki/UseGuavaInYourBuild#what-about-guavas-own-dependencies), which you can download here: - [failureaccess-1.0.3.jar](https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.3/failureaccess-1.0.3.jar) ### Javadoc - [33.7.1-jre](https://guava.dev/releases/33.7.1-jre/api/docs/) - [33.7.1-android](https://guava.dev/releases/33.7.1-android/api/docs/) ### JDiff - [33.7.1-jre vs. 33.7.0-jre](https://guava.dev/releases/33.7.1-jre/api/diffs/) - [33.7.1-android vs. 33.7.0-android](https://guava.dev/releases/33.7.1-android/api/diffs/) - [33.7.1-android vs. 33.7.1-jre](https://guava.dev/releases/33.7.1-android/api/androiddiffs/)

  2. 33.7.0v33.7.0Aug 17, 2026

    ### Newly introduced problem for Java 9 and Java 10 only Guava 33.7.0 includes a `Multi-Release` line in its jar manifest, even though it is no longer a multi-release jar. This causes [some problems with tools from Java 9 and Java 10](https://github.com/google/guava/issues/8614). The issue is fixed in [version 33.7.1](https://github.com/google/guava/releases/tag/v33.7.1). Sorry for the trouble. ### Maven ```xml <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>33.7.0-jre</version> <!-- or, for Android: --> <version>33.7.0-android</version> </dependency> ``` ### Jar files - [33.7.0-jre.jar](https://repo1.maven.org/maven2/com/google/guava/guava/33.7.0-jre/guava-33.7.0-jre.jar) - [33.7.0-android.jar](https://repo1.maven.org/maven2/com/google/guava/guava/33.7.0-android/guava-33.7.0-android.jar) Guava requires [one runtime dependency](https://github.com/google/guava/wiki/UseGuavaInYourBuild#what-about-guavas-own-dependencies), which you can download here: - [failureaccess-1.0.3.jar](https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.3/failureaccess-1.0.3.jar) ### Javadoc - [33.7.0-jre](ht

  3. 33.6.0v33.6.0Apr 14, 2026

    ### Maven ```xml <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>33.6.0-jre</version> <!-- or, for Android: --> <version>33.6.0-android</version> </dependency> ``` ### Jar files - [33.6.0-jre.jar](https://repo1.maven.org/maven2/com/google/guava/guava/33.6.0-jre/guava-33.6.0-jre.jar) - [33.6.0-android.jar](https://repo1.maven.org/maven2/com/google/guava/guava/33.6.0-android/guava-33.6.0-android.jar) Guava requires [one runtime dependency](https://github.com/google/guava/wiki/UseGuavaInYourBuild#what-about-guavas-own-dependencies), which you can download here: - [failureaccess-1.0.3.jar](https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.3/failureaccess-1.0.3.jar) ### Javadoc - [33.6.0-jre](https://guava.dev/releases/33.6.0-jre/api/docs/) - [33.6.0-android](https://guava.dev/releases/33.6.0-android/api/docs/) ### JDiff - [33.6.0-jre vs. 33.5.0-jre](https://guava.dev/releases/33.6.0-jre/api/diffs/) - [33.6.0-android vs. 33.5.0-android](https://guava.dev/releases/33.6.0-android/api/diffs/) - [33.6.0-android vs. 33.6.0-jre](https://guava.dev/releases/33.6.0-android/api/androiddiffs/)

  4. 33.5.0v33.5.0Sep 17, 2025

    ### Maven ```xml <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>33.5.0-jre</version> <!-- or, for Android: --> <version>33.5.0-android</version> </dependency> ``` ### Jar files - [33.5.0-jre.jar](https://repo1.maven.org/maven2/com/google/guava/guava/33.5.0-jre/guava-33.5.0-jre.jar) - [33.5.0-android.jar](https://repo1.maven.org/maven2/com/google/guava/guava/33.5.0-android/guava-33.5.0-android.jar) Guava requires [one runtime dependency](https://github.com/google/guava/wiki/UseGuavaInYourBuild#what-about-guavas-own-dependencies), which you can download here: - [failureaccess-1.0.3.jar](https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.3/failureaccess-1.0.3.jar) ### Javadoc - [33.5.0-jre](https://guava.dev/releases/33.5.0-jre/api/docs/) - [33.5.0-android](https://guava.dev/releases/33.5.0-android/api/docs/) ### JDiff - [33.5.0-jre vs. 33.4.8-jre](https://guava.dev/releases/33.5.0-jre/api/diffs/) - [33.5.0-android vs. 33.4.8-android](https://guava.dev/releases/33.5.0-android/api/diffs/) - [33.5.0-android vs. 33.5.0-jre](https://guava.dev/releases/33.5.0-android/api/andro

  5. 33.4.8v33.4.8Apr 14, 2025

    Guava 33.4.8 fixes a problem that we introduced while starting to migrate `guava-android` off `Unsafe` in [33.4.7](https://github.com/google/guava/releases/tag/v33.4.7). Even if you're not upgrading from Guava 33.4.0 or earlier, still read [the release notes for Guava 33.4.1](https://github.com/google/guava/releases/tag/v33.4.1). Those release notes contain information about the effects of Guava 33.4.5 and higher on the module system. ### Maven ```xml <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>33.4.8-jre</version> <!-- or, for Android: --> <version>33.4.8-android</version> </dependency> ``` ### Jar files - [33.4.8-jre.jar](https://repo1.maven.org/maven2/com/google/guava/guava/33.4.8-jre/guava-33.4.8-jre.jar) - [33.4.8-android.jar](https://repo1.maven.org/maven2/com/google/guava/guava/33.4.8-android/guava-33.4.8-android.jar) Guava requires [one runtime dependency](https://github.com/google/guava/wiki/UseGuavaInYourBuild#what-about-guavas-own-dependencies), which you can download here: - [failureaccess-1.0.3.jar](https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.3/failureaccess-1.0.3

Code frequency

additions and deletions
+7K-7KWeek of 2025-10-05: +2,297 linesWeek of 2025-10-05: -1,911 linesWeek of 2025-10-12: +4 linesWeek of 2025-10-12: -0 linesWeek of 2025-10-19: +0 linesWeek of 2025-10-19: -25 linesWeek of 2025-10-26: +1,113 linesWeek of 2025-10-26: -916 linesWeek of 2025-11-02: +267 linesWeek of 2025-11-02: -96 linesWeek of 2025-11-09: +26 linesWeek of 2025-11-09: -46 linesWeek of 2025-11-16: +226 linesWeek of 2025-11-16: -78 linesWeek of 2025-11-23: +4 linesWeek of 2025-11-23: -4 linesWeek of 2025-11-30: +180 linesWeek of 2025-11-30: -128 linesWeek of 2025-12-07: +1,094 linesWeek of 2025-12-07: -993 linesWeek of 2025-12-14: +552 linesWeek of 2025-12-14: -413 linesWeek of 2025-12-21: +288 linesWeek of 2025-12-21: -256 linesWeek of 2025-12-28: +453 linesWeek of 2025-12-28: -127 linesWeek of 2026-01-04: +240 linesWeek of 2026-01-04: -175 linesWeek of 2026-01-11: +129 linesWeek of 2026-01-11: -94 linesWeek of 2026-01-18: +26 linesWeek of 2026-01-18: -48 linesWeek of 2026-01-25: +612 linesWeek of 2026-01-25: -231 linesWeek of 2026-02-01: +190 linesWeek of 2026-02-01: -78 linesWeek of 2026-02-08: +216 linesWeek of 2026-02-08: -312 linesWeek of 2026-02-15: +345 linesWeek of 2026-02-15: -2,075 linesWeek of 2026-02-22: +1,176 linesWeek of 2026-02-22: -889 linesWeek of 2026-03-01: +2,189 linesWeek of 2026-03-01: -964 linesWeek of 2026-03-08: +4,785 linesWeek of 2026-03-08: -4,275 linesWeek of 2026-03-15: +3,482 linesWeek of 2026-03-15: -6,618 linesWeek of 2026-03-22: +120 linesWeek of 2026-03-22: -110 linesWeek of 2026-03-29: +787 linesWeek of 2026-03-29: -751 linesWeek of 2026-04-05: +2,103 linesWeek of 2026-04-05: -7,001 linesWeek of 2026-04-12: +4,795 linesWeek of 2026-04-12: -3,237 linesWeek of 2026-04-19: +3,439 linesWeek of 2026-04-19: -2,754 linesWeek of 2026-04-26: +1,445 linesWeek of 2026-04-26: -1,355 linesWeek of 2026-05-03: +370 linesWeek of 2026-05-03: -195 linesWeek of 2026-05-10: +472 linesWeek of 2026-05-10: -246 linesWeek of 2026-05-17: +548 linesWeek of 2026-05-17: -642 linesWeek of 2026-05-24: +483 linesWeek of 2026-05-24: -241 linesWeek of 2026-05-31: +526 linesWeek of 2026-05-31: -423 linesWeek of 2026-06-07: +75 linesWeek of 2026-06-07: -66 linesWeek of 2026-06-14: +924 linesWeek of 2026-06-14: -1,014 linesWeek of 2026-06-21: +4,374 linesWeek of 2026-06-21: -4,356 linesWeek of 2026-06-28: +1,436 linesWeek of 2026-06-28: -1,271 linesWeek of 2026-07-05: +889 linesWeek of 2026-07-05: -395 linesWeek of 2026-07-12: +2,144 linesWeek of 2026-07-12: -1,563 linesWeek of 2026-07-19: +60 linesWeek of 2026-07-19: -1,215 linesWeek of 2026-07-26: +804 linesWeek of 2026-07-26: -658 linesWeek of 2026-08-02: +128 linesWeek of 2026-08-02: -72 linesWeek of 2026-08-09: +1,577 linesWeek of 2026-08-09: -1,601 linesWeek of 2026-08-16: +79 linesWeek of 2026-08-16: -65 linesWeek of 2026-08-23: +3,807 linesWeek of 2026-08-23: -1,608 linesWeek of 2026-08-30: +1,557 linesWeek of 2026-08-30: -2,593 linesWeek of 2026-09-06: +388 linesWeek of 2026-09-06: -494 linesWeek of 2026-09-13: +164 linesWeek of 2026-09-13: -318 linesWeek of 2026-09-20: +1,193 linesWeek of 2026-09-20: -444 linesWeek of 2026-09-27: +146 linesWeek of 2026-09-27: -60 linesOct 5, 2025Sep 27, 2026
+54.7K lines added, -55.5K removed over the last year.

Commits per week

last 52 weeks
260Week of 2025-10-05: 12 commitsWeek of 2025-10-12: 1 commitsWeek of 2025-10-19: 2 commitsWeek of 2025-10-26: 9 commitsWeek of 2025-11-02: 5 commitsWeek of 2025-11-09: 3 commitsWeek of 2025-11-16: 3 commitsWeek of 2025-11-23: 1 commitsWeek of 2025-11-30: 7 commitsWeek of 2025-12-07: 12 commitsWeek of 2025-12-14: 6 commitsWeek of 2025-12-21: 4 commitsWeek of 2025-12-28: 4 commitsWeek of 2026-01-04: 6 commitsWeek of 2026-01-11: 7 commitsWeek of 2026-01-18: 2 commitsWeek of 2026-01-25: 9 commitsWeek of 2026-02-01: 6 commitsWeek of 2026-02-08: 5 commitsWeek of 2026-02-15: 9 commitsWeek of 2026-02-22: 11 commitsWeek of 2026-03-01: 17 commitsWeek of 2026-03-08: 14 commitsWeek of 2026-03-15: 14 commitsWeek of 2026-03-22: 2 commitsWeek of 2026-03-29: 8 commitsWeek of 2026-04-05: 17 commitsWeek of 2026-04-12: 21 commitsWeek of 2026-04-19: 11 commitsWeek of 2026-04-26: 18 commitsWeek of 2026-05-03: 8 commitsWeek of 2026-05-10: 6 commitsWeek of 2026-05-17: 6 commitsWeek of 2026-05-24: 8 commitsWeek of 2026-05-31: 9 commitsWeek of 2026-06-07: 4 commitsWeek of 2026-06-14: 9 commitsWeek of 2026-06-21: 26 commitsWeek of 2026-06-28: 10 commitsWeek of 2026-07-05: 10 commitsWeek of 2026-07-12: 10 commitsWeek of 2026-07-19: 6 commitsWeek of 2026-07-26: 9 commitsWeek of 2026-08-02: 6 commitsWeek of 2026-08-09: 10 commitsWeek of 2026-08-16: 7 commitsWeek of 2026-08-23: 14 commitsWeek of 2026-08-30: 13 commitsWeek of 2026-09-06: 7 commitsWeek of 2026-09-13: 8 commitsWeek of 2026-09-20: 10 commitsWeek of 2026-09-27: 3 commitsOct 5, 2025Sep 27, 2026
445 commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 0 commitsSun 1:00 — 1 commitsSun 2:00 — 0 commitsSun 3:00 — 3 commitsSun 4:00 — 2 commitsSun 5:00 — 0 commitsSun 6:00 — 5 commitsSun 7:00 — 11 commitsSun 8:00 — 5 commitsSun 9:00 — 9 commitsSun 10:00 — 6 commitsSun 11:00 — 2 commitsSun 12:00 — 3 commitsSun 13:00 — 3 commitsSun 14:00 — 1 commitsSun 15:00 — 6 commitsSun 16:00 — 1 commitsSun 17:00 — 4 commitsSun 18:00 — 7 commitsSun 19:00 — 5 commitsSun 20:00 — 2 commitsSun 21:00 — 3 commitsSun 22:00 — 2 commitsSun 23:00 — 1 commitsMon 0:00 — 5 commitsMon 1:00 — 2 commitsMon 2:00 — 4 commitsMon 3:00 — 1 commitsMon 4:00 — 6 commitsMon 5:00 — 15 commitsMon 6:00 — 33 commitsMon 7:00 — 64 commitsMon 8:00 — 100 commitsMon 9:00 — 128 commitsMon 10:00 — 175 commitsMon 11:00 — 173 commitsMon 12:00 — 179 commitsMon 13:00 — 165 commitsMon 14:00 — 157 commitsMon 15:00 — 84 commitsMon 16:00 — 79 commitsMon 17:00 — 61 commitsMon 18:00 — 44 commitsMon 19:00 — 37 commitsMon 20:00 — 9 commitsMon 21:00 — 25 commitsMon 22:00 — 9 commitsMon 23:00 — 4 commitsTue 0:00 — 25 commitsTue 1:00 — 14 commitsTue 2:00 — 7 commitsTue 3:00 — 10 commitsTue 4:00 — 10 commitsTue 5:00 — 16 commitsTue 6:00 — 34 commitsTue 7:00 — 71 commitsTue 8:00 — 122 commitsTue 9:00 — 119 commitsTue 10:00 — 155 commitsTue 11:00 — 124 commitsTue 12:00 — 136 commitsTue 13:00 — 168 commitsTue 14:00 — 123 commitsTue 15:00 — 96 commitsTue 16:00 — 78 commitsTue 17:00 — 54 commitsTue 18:00 — 55 commitsTue 19:00 — 41 commitsTue 20:00 — 25 commitsTue 21:00 — 14 commitsTue 22:00 — 5 commitsTue 23:00 — 5 commitsWed 0:00 — 12 commitsWed 1:00 — 8 commitsWed 2:00 — 15 commitsWed 3:00 — 9 commitsWed 4:00 — 2 commitsWed 5:00 — 20 commitsWed 6:00 — 32 commitsWed 7:00 — 58 commitsWed 8:00 — 102 commitsWed 9:00 — 103 commitsWed 10:00 — 151 commitsWed 11:00 — 160 commitsWed 12:00 — 123 commitsWed 13:00 — 137 commitsWed 14:00 — 158 commitsWed 15:00 — 117 commitsWed 16:00 — 85 commitsWed 17:00 — 67 commitsWed 18:00 — 65 commitsWed 19:00 — 34 commitsWed 20:00 — 15 commitsWed 21:00 — 26 commitsWed 22:00 — 27 commitsWed 23:00 — 5 commitsThu 0:00 — 11 commitsThu 1:00 — 5 commitsThu 2:00 — 5 commitsThu 3:00 — 9 commitsThu 4:00 — 6 commitsThu 5:00 — 14 commitsThu 6:00 — 34 commitsThu 7:00 — 65 commitsThu 8:00 — 80 commitsThu 9:00 — 130 commitsThu 10:00 — 136 commitsThu 11:00 — 118 commitsThu 12:00 — 133 commitsThu 13:00 — 120 commitsThu 14:00 — 140 commitsThu 15:00 — 74 commitsThu 16:00 — 90 commitsThu 17:00 — 68 commitsThu 18:00 — 48 commitsThu 19:00 — 27 commitsThu 20:00 — 16 commitsThu 21:00 — 9 commitsThu 22:00 — 7 commitsThu 23:00 — 4 commitsFri 0:00 — 4 commitsFri 1:00 — 5 commitsFri 2:00 — 3 commitsFri 3:00 — 8 commitsFri 4:00 — 10 commitsFri 5:00 — 12 commitsFri 6:00 — 22 commitsFri 7:00 — 64 commitsFri 8:00 — 88 commitsFri 9:00 — 110 commitsFri 10:00 — 132 commitsFri 11:00 — 176 commitsFri 12:00 — 174 commitsFri 13:00 — 155 commitsFri 14:00 — 114 commitsFri 15:00 — 57 commitsFri 16:00 — 74 commitsFri 17:00 — 58 commitsFri 18:00 — 50 commitsFri 19:00 — 21 commitsFri 20:00 — 11 commitsFri 21:00 — 15 commitsFri 22:00 — 4 commitsFri 23:00 — 13 commitsSat 0:00 — 2 commitsSat 1:00 — 1 commitsSat 2:00 — 0 commitsSat 3:00 — 4 commitsSat 4:00 — 3 commitsSat 5:00 — 3 commitsSat 6:00 — 6 commitsSat 7:00 — 21 commitsSat 8:00 — 10 commitsSat 9:00 — 10 commitsSat 10:00 — 2 commitsSat 11:00 — 9 commitsSat 12:00 — 8 commitsSat 13:00 — 5 commitsSat 14:00 — 2 commitsSat 15:00 — 7 commitsSat 16:00 — 3 commitsSat 17:00 — 3 commitsSat 18:00 — 13 commitsSat 19:00 — 5 commitsSat 20:00 — 4 commitsSat 21:00 — 0 commitsSat 22:00 — 1 commitsSat 23:00 — 0 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Aug 10, 2026daily#6+93
Aug 9, 2026daily#6+93
Aug 8, 2026daily#7+152
Aug 7, 2026daily#5+13
  • krahets/hello-algo

    《Hello 算法》:动画图解、一键运行的数据结构与算法教程。支持简中、繁中、English、日本語,提供 Python, Java, C++, C, C#, JS, Go, Swift, Rust, Ruby, Kotlin, TS, Dart 等代码实现

    130.6K stars · Java

  • Stirling-Tools/Stirling-PDF

    #1 PDF Application on GitHub that lets you edit PDFs on any device anywhere

    93.6K stars · Java

  • NationalSecurityAgency/ghidra

    Ghidra is a software reverse engineering (SRE) framework

    80.6K stars · Java

  • elastic/elasticsearch

    Free and Open Source, Distributed, RESTful Search Engine

    78.2K stars · Java

  • ashishps1/awesome-system-design-resources

    Learn System Design concepts and prepare for interviews using free resources.

    41.9K stars · Java

  • yuliskov/SmartTube

    Browse media content with your own rules on Android TV

    34.5K stars · Java