Sane C++ Libraries عبارة عن مجموعة من مكتبات تجريد النظام الأساسي لـ C++ لأنظمة التشغيل macOS وWindows وLinux.
مبادئ:
✅ أوقات التجميع سريعة
✅ خالي من الانتفاخات
✅ كود بسيط قابل للقراءة
✅سهل الدمج
⛔️ لا توجد مكتبة / استثناءات / RTTI القياسية لـ C++
⛔️ لا توجد تبعيات لجهة خارجية (يفضل OS API)
قم بزيارة موقع التوثيق لمزيد من المعلومات.
مكتبة | وصف |
---|---|
الخوارزميات | ؟ مكتبة العناصر النائبة حيث سيتم وضع الخوارزميات النموذجية |
غير متزامن | ؟ الإدخال/الإخراج غير المتزامن (الملفات، المقابس، الموقتات، العمليات، أحداث fs، تنبيه الخيوط) |
التدفقات غير المتزامنة | ؟ قراءة البيانات وتحويلها وكتابتها بشكل متزامن من المصادر غير المتزامنة إلى الوجهات. |
يبني | ؟ الحد الأدنى من نظام البناء حيث يتم وصف البنيات في C++ |
حاويات | ؟ الحاويات العامة (SC::Vector، SC::SmallVector، SC::Array وما إلى ذلك) |
ملف | ؟ الإدخال/الإخراج لملف القرص المتزامن |
نظام الملفات | ؟ عمليات نظام الملفات { موجودة، نسخ، حذف } لـ { الملفات والأدلة } |
مكرر نظام الملفات | ؟ تعداد الملفات والدلائل داخل مسار معين |
مراقب نظام الملفات | ؟ الإخطارات {إضافة، إزالة، إعادة تسمية، تعديل} للملفات والأدلة |
مؤسسة | ؟ الأنواع البدائية، التأكيدات، الحدود، الوظيفة، الامتداد، النتيجة، الاتحاد الموسوم |
التجزئة | ؟ حساب تجزئات MD5 أو SHA1 أو SHA256 لتدفق من البايتات |
المتشعب | ؟ محلل HTTP والعميل والخادم |
البرنامج المساعد | ؟ الحد الأدنى من نظام البرنامج المساعد القائم على التبعية مع إعادة التحميل السريع |
عملية | ؟ إنشاء عمليات فرعية وتسلسلها (يمكن استخدامها أيضًا مع مكتبة Async) |
انعكاس | ؟ وصف أنواع C++ في وقت الترجمة للتسلسل |
التسلسل الثنائي | ؟ إجراء تسلسل من وإلى تنسيق ثنائي باستخدام الانعكاس |
نص التسلسل | ؟ إجراء تسلسل إلى/من تنسيقات النص (JSON) باستخدام الانعكاس |
المقبس | ؟ شبكة مقابس متزامنة والبحث عن DNS |
سلاسل | ؟ تنسيق / تحويل / معالجة السلسلة (ASCII / UTF8 / UTF16) |
اختبار | ؟ إطار اختبار بسيط تستخدمه جميع المكتبات الأخرى |
خيوط | ؟ الذري، الخيط، تجمع الخيط، كائن المزامنة، متغير الشرط |
وقت | ؟ التعامل مع الوقت (نسبي، مطلق، عالي الدقة) |
يتم ترميز كل مكتبة بالألوان للإشارة إلى حالتها:
تحتوي بعض المكتبات على روابط C
ملزم | وصف |
---|---|
sc_hashing | روابط لمكتبة التجزئة |
يمكن استخدام المكتبات كما هي، بإضافة ملف واحد إلى مشروعك ودون الحاجة إلى أي نظام بناء.
انظر المبنى (المستخدم) لاستخدام المكتبة فقط
قريبا:
SC_COMPILER_ENABLE_STD_CPP=1
إذا كنت تخطط لاستخدام مكتبة C++ القياسيةLibraries/[Library]/*.h
) CoreFoundation.framework
CoreServices.framework
libdl
( -ldl
)libpthread
( -lpthread
)يعرض SCExample تكامل مكتبات Sane C++ مع مكتبات Dear ImGui وsokol (راجع صفحة الأمثلة).
يتم إنشاء الاختبارات باستخدام منشئ المشروع SC::Build المستضاف ذاتيًا، والذي يصف الإصدارات في C++.
فحص المبنى (المساهم) لإجراء الاختبارات.
@pagghiu.bsky.social
@pagghiu_
@pagghiu
وبدلاً من ذلك، فأنا أقرأ أيضًا الخلافات التالية:
@Pagghiu
من أي قناة مناسبة أو مجرد رسالة مباشرة، اللغتان الإنجليزية والإيطالية جيدتان)@Pagghiu
من أي قناة مناسبة أو مجرد رسالة مباشرة)يرجى تخصيص بعض الوقت لقراءة المبادئ وأسلوب الترميز.
بعد ذلك يمكنك قراءة دليل CONTRIBUTING.md.
مكتبات Sane C++ مرخصة بموجب ترخيص MIT، راجع LICENSE.txt لمزيد من المعلومات.
توجد على قناة YouTube هذه بعض مقاطع الفيديو التي تعرض أجزاء من عملية التطوير.
توجد في مدونة Sane Coding سلسلة من منشورات المدونة حول هذا المشروع.