A comprehensive set of core Java libraries from Google providing new collection types, immutable collections, and utilities for concurrency, I/O, hashing, and more.
Guava is a set of core Java libraries developed by Google that extends the Java standard library with additional collection types, immutable collections, a graph library, and utilities for concurrency, I/O, hashing, primitives, and strings. It solves common programming problems by providing robust, well-tested components that are production-ready.
Java developers building applications that require enhanced collections, concurrency tools, or utilities beyond the standard library, particularly those in enterprise or large-scale environments.
Developers choose Guava for its reliability, comprehensive feature set, and Google's production backing, offering utilities that are thoroughly tested and widely adopted, reducing the need to reinvent common solutions.
Google core libraries for Java
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Introduces multimaps, multisets, and tables that solve common data structure problems not covered by standard Java collections, as highlighted in the key features.
Widely used within Google and other companies, ensuring it's thoroughly tested and battle-ready for large-scale applications, per the README.
Provides ListenableFuture and other tools that simplify asynchronous programming compared to raw Java concurrency APIs, making complex patterns more manageable.
Offers immutable collections for thread-safe data handling, promoting safer code practices and reducing bugs in multi-threaded environments.
Available in separate JRE and Android flavors, supporting diverse deployment targets from servers to mobile devices, as specified in the build instructions.
APIs marked with @Beta can change or be removed arbitrarily, posing a risk for libraries that expose these to users without repackaging, as warned in the README.
Serialized forms of objects are not guaranteed to be compatible across versions, complicating data persistence and long-term storage, per the important warnings.
Some I/O features may not function correctly on non-Linux systems, as noted in the testing section, limiting portability for certain use cases.
Requires an additional runtime dependency (failureaccess) for linkage, adding complexity to dependency management and potential version conflicts.