← Ко всем open source проектам

Guava

google/guava

Guava — набор базовых Java-библиотек от Google: коллекции, immutable-структуры, графы, concurrency, I/O, hashing, primitives и строки.

Форки 11,133
Автор google
Язык Java
Лицензия Не указано
Обновлено 2026-06-27

Что это такое

Guava — набор базовых библиотек для Java от Google. В него входят новые типы коллекций, immutable-коллекции, библиотека графов и утилиты для concurrency, I/O, hashing, primitives, строк и других повседневных задач.

Проект появился как практическое расширение стандартной Java-библиотеки: многие вещи нужны почти каждому крупному Java-проекту, но в JDK они долго отсутствовали или были слишком многословны.

Главная задача Guava — дать проверенные строительные блоки, которые уменьшают количество самописных утилит в кодовой базе.

Что внутри репозитория

В репозитории описаны варианты подключения к сборке, snapshots, документация, ссылки для изучения и важные предупреждения по использованию.

Особенно важны две flavor-линии: JRE-вариант требует JDK 1.8 или выше, а Android-вариант учитывает ограничения мобильной платформы.

Как это обычно используют

Guava используют в серверных Java-сервисах, библиотеках, внутренних платформах и старых проектах, где нужно поддерживать много полезных утилит без копипаста.

Обычный сценарий: подключить зависимость, заменить самописные коллекции и проверки на готовые типы, а затем постепенно убрать локальные helper-классы.

Immutable коллекция без ручной защиты

Пример показывает одну из привычных зон Guava: неизменяемые коллекции, которые безопаснее передавать между слоями программы.

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

Что получается на практике

Сильная сторона Guava — зрелость. Библиотека давно используется внутри Google и во множестве компаний, поэтому ее API проверены большим количеством реального кода.

Еще одно преимущество — широта, но без превращения в фреймворк. Guava помогает с базовыми типами и операциями, не диктуя архитектуру приложения.

Ограничения и аккуратные места

Ограничение в том, что часть идей Guava со временем попала в саму Java. Перед добавлением зависимости стоит проверить, не закрывает ли задачу современный JDK.

Также нужно внимательно читать предупреждения проекта: некоторые классы имеют тонкости совместимости, производительности и поддержки.

Кому подойдет

Guava лучше всего подходит Java-командам, которым нужны надежные утилиты общего назначения и понятная альтернатива локальному набору helpers.

В каталоге Guava важна как пример библиотеки, которая стала частью повседневной Java-практики не за счет моды, а за счет тысяч маленьких удобств.

В долгой работе с таким проектом важна не только установка, но и понятная граница ответственности: что берет на себя репозиторий, какие обновления нужно отслеживать и кто в команде отвечает за правила использования.

Практически это означает: перед внедрением стоит запустить минимальный пример, посмотреть конфигурацию, проверить обновления и понять, какие данные или процессы затрагиваются. Такой короткий проход быстро показывает, где проект помогает сразу, а где потребуются решения команды.

Если проект становится частью публичного сайта, продукта или внутренней платформы, его лучше закрепить в документации команды: ссылка на источник, версия, ответственный и регулярность обновлений. Тогда открытый код остается управляемой зависимостью, а не случайным фрагментом инфраструктуры.