Guava is Google's core library collection for Java, providing essential utilities and data structures that extend the standard Java library. The project is written in Java and maintains a homepage at guava.dev.
The library encompasses several major functional areas. It introduces new collection types including multimap and multiset alongside comprehensive immutable collection implementations. Guava includes a dedicated graph library for working with graph data structures. Beyond collections, the library provides utilities for concurrency operations, I/O handling, hashing algorithms, primitive type operations, and string manipulation. These utilities are classified across functional programming paradigms, immutability patterns, and general-purpose helper functions.
Guava is distributed in two distinct flavors to accommodate different deployment environments. The JRE flavor targets Java 8 and higher versions, while a separate Android flavor supports Android development and libraries requiring Android compatibility. Both flavors are available through Maven with the group ID com.google.guava and artifact ID guava, with version strings distinguishing between jre and android variants. The library maintains snapshot builds from the master branch available through Maven for developers wanting the latest development versions.
The project demonstrates active maintenance and community engagement.
The library maintains strict API stability guarantees for production code. APIs not marked with the Beta annotation remain binary-compatible indefinitely, with the last removal of non-Beta APIs occurring in version 21.0. Beta-annotated APIs are explicitly subject to change or removal. The project requires only one runtime dependency, com.google.guava:failureaccess:1.0.3, along with annotation-only dependencies. Documentation is comprehensive, including a users guide titled Guava Explained and API Javadoc accessible through guava.dev/api with direct class lookup capabilities.
This indicates cross-pollination of development practices and shared expertise across different language ecosystems and development tools. The project maintains communication channels including the guava-announce mailing group for release announcements and guava-discuss for open-ended discussions, supporting both users seeking implementation guidance and those contributing to the library's evolution.