عن المشروع

Guava هي مجموعة من مكتبات الجافا الأساسية من Google. توفر أنواع مجموعات جديدة مثل multimap وmultiset، ومجموعات غير قابلة للتغيير (immutable collections)، ومكتبة رسوم بيانية (graph library)، وأدوات للتزامن (concurrency) وI/O والتجزئة (hashing) والقيم البدائية (primitives) والسلاسل وغيرها. وفقاً لملف README، تُستخدم Guava على نطاق واسع في معظم مشاريع الجافا ضمن Google وغيرها من الشركات. تأتي Guava بنسختين: نسخة JRE التي تتطلب JDK 1.8 أو أعلى، ونسخة Android المتاحة مع الكود المصدري في دليل android داخل المستودع. إضافة Guava إلى المشروع: معرف المجموعة في Maven هو com.google.guava ومعرف الأداة هو guava. تُحدد النسختان في حقل الإصدار بـ 33.7.1-jre أو 33.7.1-android. يتضمن ملف README مقتطفات تبعية لكل من Maven وGradle، بما في ذلك إرشادات حول متى تستخدم api بدلاً من implementation في Gradle. الصور السريعة (Snapshots) المبنية من فرع master متاحة عبر Maven بإصدار 999.0.0-HEAD-jre-SNAPSHOT أو 999.0.0-HEAD-android-SNAPSHOT لنسخة Android. تتوفر أيضاً Tوثائق API وFروق API. يمكن الوصول إلى Javadoc عبر guava.dev/api، ويمكن فتح فئة محددة بإضافة اسمها إلى guava.dev. تشمل موارد التعلّم الدليل المستخدم، وGuava Explained، ومجموعة من الروابط المفيدة. يربط المشروع بمشروعه على GitHub، ومتتبع القضايا (issue tracker)، ووسم StackOverflow، ومجموعتي Google guava-announce وguava-discuss. يُدرج ملف README تحذيرات مهمة: الواجهات البرمجية المميزة بالتعليمة @Beta تخضع للتغيير وقد يتم تعديلها أو إزالتها في أي وقت؛ يُنصح مطورو المكتبات بعدم استخدام واجهات Beta ما لم يعيدوا تعبئتها، ويُوصى باستخدام Guava Beta Checker. الواجهات غير المميزة بـ @Beta تظل متوافقة ثنائياً إلى ما لا نهاية، وحتى الواجهات المميزة بـ @Deprecated تبقى ما لم تكن @Beta. تعتمد Guava على تبعية واحدة مطلوبة للربط الزمني com.google.guava:failureaccess:1.0.3، بالإضافة إلى بعض التبعية الخاصة بالبيانات الوصفية فقط. أشكال التسلسل (Serialized forms) لجميع الكائنات قابلة للتغيير ما لم يُذكر خلاف ذلك، لذا يجب عدم تخزينها افتراضاً أن الإصدارات المستقبلية يمكنها قراءتها. ليست الفئات مصممة للحماية من مُدخِل خبيث ويجب عدم استخدامها للاتصال بين الكود الموثوق وغير الموثوق. بالنسبة للنسخة الرئيسية، يتم اختبار المكتبات باستخدام مجموعة من إصدارات OpenJDK على Linux وWindows، وقد لا تعمل بعض الميزات بشكل صحيح في بيئات غير Linux، خاصة في com.google.common.io. بالنسبة لنسخة Android، تعمل اختبارات الوحدة أيضاً على مستوى API 24 (Nougat).