Об этом проекте

Guava — набор базовых библиотек Java от Google. Он предоставляет новые типы коллекций, такие как multimap и multiset, неизменяемые коллекции, библиотеку графов, а также утилиты для конкурентности, I/O, хеширования, примитивов, строк и многого другого. Согласно README, библиотека широко используется в большинстве Java-проектов в Google, а также многими другими компаниями. Guava выпускается в двух вариантах. Вариант JRE требует JDK 1.8 или выше. Для поддержки Android доступен вариант Android со исходным кодом в директории android в репозитории. Добавление Guava в сборку: Maven group ID — com.google.guava, artifact ID — guava. Два варианта указываются в поле версии Maven как 33.7.1-jre или 33.7.1-android. В README приведены сниппеты зависимостей для Maven и Gradle, включая рекомендации по использованию api versus implementation в Gradle. Снимки, собранные из ветки master, доступны через Maven под версией 999.0.0-HEAD-jre-SNAPSHOT или 999.0.0-HEAD-android-SNAPSHOT для варианта Android. Также доступны Javadoc и различия API для снимков. Ссылка на Javadoc: guava.dev/api; конкретный класс можно открыть, добавив его имя к guava.dev. Ресурсы для обучения включают руководство пользователя, Guava Explained и коллекцию других полезных ссылок. Проект ссылается на свой GitHub-репозиторий, трекер задач, тег на StackOverflow и группы Google guava-announce и guava-discuss. В README перечислены важные предупреждения. API, отмеченные аннотацией @Beta на уровне класса или метода, могут быть изменены и удалены в любое время; разработчикам не рекомендуется использовать beta--API, за исключением случаев репакетирования, рекомендуется Guava Beta Checker. API без @Beta останутся бинарно совместимыми на неопределённый срок, и даже @Deprecated API будут сохраняться, если они не отмечены @Beta. У Guava одна зависимость, необходимая для линковки во время выполнения: com.google.guava:failureaccess:1.0.3, а также несколько только аннотационных зависимостей. Сериализованные формы всех объектов могут изменяться, если не указано иное, поэтому их не следует сохранять с расчётом на то, что будущая версия сможет их прочитать. Классы не предназначены для защиты от злонамеренного вызывающего и не должны использоваться для взаимодействия между доверенным и недоверенным кодом. Для основной версии библиотеки тестируются с использованием различных версий OpenJDK на Linux и Windows; некоторые функции, особенно в com.google.common.io, могут работать некорректно в окружениях, отличных от Linux. Для варианта Android юнит-тесты также выполняются на API уровня 24 (Nougat).