← All open source projects

Guava

google/guava

Guava is a set of core Java libraries from Google: collections, immutable structures, graphs, concurrency, I/O, hashing, primitives, and strings.

Forks 11,133
Author google
Language Java
License Unknown
Synced 2026-06-27

What it is

Guava is a set of core Java libraries from Google. It includes new collection types, immutable collections, a graph library, and utilities for concurrency, I/O, hashing, primitives, strings, and other daily tasks.

The project appeared as a practical extension of the standard Java library: many things are needed in almost every large Java project, but were missing from the JDK for a long time or too verbose.

Guava’s main task is to provide tested building blocks that reduce handwritten utility code in a codebase.

What is inside the repository

The repository describes build integration, snapshots, documentation, learning links, and important usage warnings.

Two flavor lines matter: the JRE flavor requires JDK 1.8 or higher, while the Android flavor accounts for mobile platform constraints.

How people usually use it

Guava is used in server-side Java services, libraries, internal platforms, and older projects that need many useful utilities without copy-paste.

A normal scenario is to add the dependency, replace handwritten collections and checks with ready types, and gradually remove local helper classes.

An immutable collection without manual guarding

This example shows one of Guava’s familiar areas: immutable collections that are safer to pass between layers.

Language: Plain text
ImmutableList<String> names = ImmutableList.of("Ada", "Grace", "Linus");
// names.add("Ken") would fail: the collection is immutable

What it feels like in practice

The project’s strength is maturity. The library has long been used inside Google and many other companies, so its APIs have been tested by a lot of real code.

Another advantage is breadth without becoming a framework. Guava helps with base types and operations without dictating application architecture.

Limits and careful spots

The limitation is that some Guava ideas later entered Java itself. Before adding the dependency, it is worth checking whether a modern JDK already solves the task.

The project warnings also deserve attention: some classes have compatibility, performance, and support subtleties.

Who it fits

Guava best fits Java teams that need reliable general-purpose utilities and a clear alternative to local helper sets.

In the catalog, Guava matters as a library that became part of daily Java practice through thousands of small conveniences rather than hype.

In long-term work with a project like this, installation is not the only concern: the team needs a clear boundary of responsibility, an update routine, and an owner for usage rules.

In practice, this means running a minimal example before adoption, checking configuration, reviewing updates, and understanding which data or processes are touched. That short pass quickly shows where the project helps immediately and where the team still needs its own decisions.

If the project becomes part of a public site, product, or internal platform, it should be recorded in team documentation: source link, version, owner, and update rhythm. Then the open code remains a managed dependency rather than a random fragment of infrastructure.