يحتوي المستودع على كود مكتبة Abseil C++. أبسيل هي مجموعة مفتوحة المصدر من أكواد C++ (متوافقة مع C++ 14) مصممة لتعزيز مكتبة C++ القياسية.
عن أبسيل
بداية سريعة
بناء أبسيل
يدعم
خريطة الكود
الإصدارات
رخصة
روابط
أبسيل هي مجموعة مفتوحة المصدر من أكواد مكتبة C++ المصممة لتعزيز مكتبة C++ القياسية. يتم جمع كود مكتبة Abseil من قاعدة أكواد C++ الخاصة بشركة Google، وقد تم اختباره واستخدامه على نطاق واسع في الإنتاج، وهو نفس الكود الذي نعتمد عليه في حياتنا اليومية للبرمجة.
في بعض الحالات، توفر شركة أبسيل أجزاءً مفقودة من معيار C++؛ وفي حالات أخرى، توفر أبسيل بدائل لمعايير ذوي الاحتياجات الخاصة التي اكتشفناها من خلال الاستخدام في قاعدة أكواد Google. ونشير إلى تلك الحالات بوضوح ضمن رمز المكتبة الذي نقدمه لك.
ليس المقصود من أبسيل أن تكون منافسًا للمكتبة القياسية؛ لقد وجدنا للتو أن العديد من هذه الأدوات المساعدة تخدم غرضًا ضمن قاعدة التعليمات البرمجية الخاصة بنا، ونريد الآن توفير هذه الموارد لمجتمع C++ ككل.
إذا كنت تريد البدء للتو، فتأكد من تشغيل Abseil Quickstart على الأقل. يحتوي Quickstart على معلومات حول إعداد بيئة التطوير الخاصة بك، وتنزيل كود Abseil، وإجراء الاختبارات، والحصول على عمل ثنائي بسيط.
Bazel وCMake هما نظاما البناء الرسميان لشركة Abseil. راجع البداية السريعة لمزيد من المعلومات حول بناء Abseil باستخدام نظام البناء Bazel. إذا كنت بحاجة إلى دعم CMake، فيرجى التحقق من تعليمات إنشاء CMake وCMake Quickstart.
تتبع شركة أبسيل سياسة دعم Google الأساسية لـ C++. راجع هذا الجدول للحصول على قائمة بالإصدارات المدعومة حاليًا من المترجمين والأنظمة الأساسية وأدوات البناء.
يحتوي Abseil على مكونات مكتبة C++ التالية:
base
تحتوي المكتبة base
على رمز التهيئة والتعليمات البرمجية الأخرى التي تعتمد عليها جميع رموز Abseil الأخرى. لا يجوز أن يعتمد الكود الموجود داخل base
على أي كود آخر (بخلاف مكتبة C++ القياسية).
algorithm
تحتوي مكتبة algorithm
على إضافات إلى مكتبة C++
والإصدارات المستندة إلى الحاوية من هذه الخوارزميات.
cleanup
تحتوي مكتبة cleanup
على النوع absl::Cleanup
الذي يشبه التحكم في التدفق والذي يُستخدم لتنفيذ رد اتصال عند الخروج من النطاق.
container
تحتوي مكتبة container
على حاويات إضافية من طراز STL، بما في ذلك حاويات "الطاولة السويسرية" غير المرتبة الخاصة بشركة أبسيل.
crc
تحتوي مكتبة crc
على تعليمات برمجية لحساب عمليات التحقق من التكرار الدوري للكشف عن الأخطاء في البيانات.
debugging
تحتوي مكتبة debugging
على تعليمات برمجية مفيدة لتمكين عمليات فحص التسرب وأدوات تتبع المكدس والترميز.
flags
تحتوي مكتبة flags
على تعليمات برمجية للتعامل مع إشارات سطر الأوامر للمكتبات والثنائيات التي تم إنشاؤها باستخدام Abseil.
hash
تحتوي مكتبة hash
على إطار عمل التجزئة وتطبيقات عامل التجزئة الافتراضية للأنواع القابلة للتجزئة في أبسيل.
log
تحتوي مكتبة log
على وحدات ماكرو LOG
و CHECK
وتسهيلات لكتابة الرسائل المسجلة إلى القرص أو stderr
أو الوجهات القابلة للتوسيع بواسطة المستخدم.
memory
تحتوي مكتبة memory
على تسهيلات لإدارة الذاكرة تعمل على زيادة مكتبة
الخاصة بـ C++.
meta
تحتوي مكتبة meta
على إصدارات متوافقة من اختبارات النوع المتاحة ضمن إصدارات C++ 14 وC++ 17 من مكتبة C++
.
numeric
تحتوي المكتبة numeric
على أنواع أعداد صحيحة 128 بت، بالإضافة إلى تطبيقات لوظائف الرياضيات ذات التحكم بالبت الخاصة بـ C++20.
profiling
تحتوي مكتبة profiling
على رمز الأداة المساعدة لتوصيف كيانات C++. وهي حاليًا تابعة لمكتبات أبسيل الأخرى.
random
تحتوي المكتبة random
على وظائف لتوليد قيم عشوائية زائفة.
status
تحتوي مكتبة status
على تجريدات لمعالجة الأخطاء، وتحديدًا absl::Status
و absl::StatusOr
.
strings
تحتوي مكتبة strings
على مجموعة متنوعة من إجراءات السلاسل والأدوات المساعدة، بما في ذلك إصدار متوافق مع C++ 14 من النوع C++ 17 std::string_view
.
synchronization
تحتوي مكتبة synchronization
على عناصر التزامن الأولية (فئة absl::Mutex
الخاصة بـ Abseil، وهي بديل لـ std::mutex
) ومجموعة متنوعة من تجريدات المزامنة.
time
تحتوي مكتبة time
على تجريدات للحوسبة مع النقاط الزمنية المطلقة، والمدد الزمنية، وتنسيق الوقت وتحليله داخل المناطق الزمنية.
types
تحتوي مكتبة types
على أنواع أدوات مساعدة غير حاوية، مثل إصدار متوافق مع C++ 14 من النوع C++ 17 std::optional
.
utility
تحتوي مكتبة utility
على رمز الأداة المساعدة والمساعد.
توصي شركة أبسيل المستخدمين "بالمتابعة المباشرة" (التحديث إلى الالتزام الأخير من الفرع الرئيسي كلما كان ذلك ممكنًا). ومع ذلك، فإننا ندرك أن هذه الفلسفة لا تناسب كل مشروع، لذلك نقدم أيضًا إصدارات دعم طويلة المدى ندعم بها إصلاحات الأخطاء الخطيرة. راجع مستند إدارة الإصدار الخاص بنا لمزيد من التفاصيل.
مكتبة Abseil C++ مرخصة بموجب شروط ترخيص Apache. راجع الترخيص لمزيد من المعلومات.
لمزيد من المعلومات حول أبسيل:
استشر مقدمة أبسيل
اقرأ لماذا نعتمد أبسيل لفهم فلسفتنا في التصميم.
اطلع على ضمانات توافق Abseil الخاصة بنا لفهم ما نعدك به وما نتوقعه منك في المقابل.