مكتبة C مشتركة بين الأنظمة الأساسية
دعم المشروع
ادعم هذا المشروع من خلال أن تصبح راعياً. سيظهر شعارك هنا مع رابط لموقعك على الويب. [كن راعيًا]
مقدمة (中文)
TBOX عبارة عن مكتبة C مشتركة بين الأنظمة الأساسية تشبه السطح البيني، وهي سهلة الاستخدام ولكنها قوية بطبيعتها.
يركز المشروع على جعل تطوير لغة C أسهل ويوفر العديد من الوحدات (مثل الدفق، coroutine، regex، الحاوية، الخوارزمية ...)، بحيث يمكن لأي مطور أن يلتقطها بسرعة ويستمتع بزيادة الإنتاجية عند التطوير بلغة C.
وهو يدعم الأنظمة الأساسية التالية: Windows وMacosx وLinux وAndroid وiOS و*BSD وغيرها.
ويوفر العديد من خيارات التجميع باستخدام xmake:
- الإصدار: تعطيل معلومات التصحيح والتأكيد وفحص الذاكرة وتمكين التحسين.
- التصحيح: تمكين معلومات التصحيح والتأكيد وفحص الذاكرة وتعطيل التحسين.
- صغير: قم بتعطيل جميع الوحدات الملحقة وتمكين تحسين المساحة.
- مايكرو: تجميع المكتبة الصغيرة (~64 كيلو بايت) لنظام التضمين.
إذا كنت تريد معرفة المزيد، يرجى الرجوع إلى: Documents وGithub وGitee
سمات
مكتبة الدفق
- يدعم الملف والبيانات وhttp ومصدر المقبس
- يدعم مرشح التدفق لـ gzip وcharset و...
- ينفذ نقل الدفق
- ينفذ دفق المخزن المؤقت الثابت لتحليل البيانات
- يدعم coroutine وينفذ عملية غير متزامنة
مكتبة كوروتين
- يوفر مفتاح كوروتين عالي الأداء
- يدعم الذراع،arm64،x86،x86_64 ..
- يوفر واجهات القناة
- يوفر واجهات الإشارة والقفل
- يدعم مقبس io وتشغيل الدفق في كوروتين
- يوفر بعض خوادم io (http ..) باستخدام coroutine
- يوفر كوروتينات مكدسة وغير مكدسة
- دعم epoll، kqueue، استطلاع، حدد وIOCP
- دعم لانتظار الأنابيب والمقبس والعملية في coroutine وpoller في نفس الوقت
مكتبة قاعدة البيانات
- يدعم قاعدة بيانات mysql وsqlite3 ويقوم بتعداد البيانات باستخدام وضع التكرار
مكتبة محلل XML
- يدعم وضع DOM وSAX ويدعم xpath
مكتبة التسلسل وإلغاء التسلسل
- يدعم تنسيقات XML وJSON وBPlist وXplist والثنائية
مكتبة الذاكرة
- ينفذ بعض تجمعات الذاكرة لتحسين الذاكرة
- يدعم الكشف السريع عن أخطاء الذاكرة. يمكنه اكتشاف الأنواع التالية من الأخطاء لوضع التصحيح:
- الوصول خارج الحدود إلى الكومة والمجموعات العالمية
- الاستخدام بعد الحرة
- حر مزدوج، حر غير صالح
- تسرب الذاكرة
مكتبة الحاويات
- ينفذ جدول التجزئة، وقائمة واحدة، وقائمة مزدوجة، والمتجه، والمكدس، وقائمة الانتظار وكومة الحد الأدنى/الحد الأقصى. يدعم وضع التكرار للخوارزمية
مكتبة الخوارزمية
- يستخدم وضع التكرار
- يطبق خوارزمية البحث والبحث الثنائي والبحث العكسي
- ينفذ خوارزمية الفرز والفرز الفقاعي والفرز السريع وفرز الكومة وخوارزمية الفرز
- ينفذ العد، وعناصر السير، وعناصر السير العكسي، وfor_all وrfor_all
مكتبة الشبكة
- ينفذ نظام أسماء النطاقات (مخبأة)
- تنفذ SSL (openssl، Polarssl، mbedtls)
- ينفذ http
- ينفذ ملفات تعريف الارتباط
- يدعم IPv4، IPv6
- يدعم الكوروتين
مكتبة المنصة
- ينفذ الموقت، توقيت سريع ومنخفض الدقة
- ينفذ العملية الذرية والذرية64
- ينفذ Spinlock، Mutex، Event، Semaphore، Thread و Thread Pool
- ينفذ الملف، عملية المقبس
- ينفذ المستفتي باستخدام epoll، الاستطلاع، حدد، kqueue ...
- ينفذ واجهات سياق التبديل لكوروتين
مكتبة المحارف
- يدعم utf8، utf16، gbk، gb2312، uc2 و uc4
- يدعم وضع endian الكبير ووضع endian الصغير
مكتبة الرمز البريدي
- يدعم تنسيقات gzip وzlibraw وzlib باستخدام مكتبة zlib إن وجدت
- تنفذ خوارزميات lzsw وlz77 وrlc
مكتبة الاستخدامات
- ينفذ Base32، Base64 التشفير وفك التشفير
- ينفذ تأكيد وتتبع الإخراج لوضع التصحيح
- ينفذ عملية البت لتحليل بيانات u8، u16، u32، u64
مكتبة الرياضيات
- ينفذ مولد عشوائي
- ينفذ حسابًا سريعًا للنقطة الثابتة، ويدعم رقم النقطة الثابتة 6 بت، و16 بت، و30 بت
مكتبة ليبك
- ينفذ واجهات مكتبة libc خفيفة الوزن، ويحتوي اسم الواجهة على بادئة
tb_xxx
لتجنب التعارض - ينفذ ملحق واجهة strixxx strrxxx wcsixxx wcsrxxx
- تحسين بعض الواجهات المستخدمة بشكل متكرر، مثل memset وmemcpy وstrcpy ...
- تنفذ واجهات التمديد
memset_u16
و memset_u32
و memset_u64
مكتبة ليب
- ينفذ واجهات مكتبة libm خفيفة الوزن، ويحتوي اسم الواجهة على بادئة
tb_xxx
لتجنب التعارض - يدعم النوع العائم والمزدوج
مكتبة ريكس
- يدعم المباراة والاستبدال
- يدعم الوضع العالمي/متعدد الخطوط/بدون حالة
- يستخدم وحدات pcre وpcre2 وposix regex
مكتبة التجزئة
- يطبق خوارزمية التجزئة crc32 وadler32 وmd5 وsha1
- ينفذ بعض خوارزميات تجزئة السلسلة (.eg bkdr، fnv32، fnv64، sdbm، djb2، rshash، aphash ...)
- ينفذ مولد uuid
المشاريع
بعض المشاريع باستخدام tbox:
- com.gbox
- vm86
- com.xmake
- com.itrace
- أكثر
البناء (xmake)
الرجاء تثبيت xmake أولاً: xmake
# build for the host platform
$ cd ./tbox
$ xmake
# build for the mingw platform
$ cd ./tbox
$ xmake f -p mingw --sdk=/home/mingwsdk
$ xmake
# build for the iphoneos platform
$ cd ./tbox
$ xmake f -p iphoneos
$ xmake
# build for the android platform
$ cd ./tbox
$ xmake f -p android --ndk=xxxxx
$ xmake
# build for the linux cross-platform
$ cd ./tbox
$ xmake f -p linux --sdk=/home/sdk # --bin=/home/sdk/bin
$ xmake
البناء (xmake.sh)
مثال
#include "tbox/tbox.h"
int main ( int argc , char * * argv ) {
if (! tb_init ( tb_null , tb_null )) return 0 ;
tb_vector_ref_t vector = tb_vector_init ( 0 , tb_element_str ( tb_true ));
if ( vector ) {
tb_vector_insert_tail ( vector , "hello" );
tb_vector_insert_tail ( vector , "tbox" );
tb_for_all ( tb_char_t const * , cstr , vector ) {
tb_trace_i ( "%s" , cstr );
}
tb_vector_exit ( vector );
}
tb_exit ();
return 0 ;
}
الدعم الفني
يمكنك أيضًا التفكير في رعايتنا للحصول على خدمات الدعم الفني، [كن راعيًا]
اتصالات
- البريد الإلكتروني: [email protected]
- الصفحة الرئيسية:tboox.org
- المجتمع:/r/tboox على رديت
- غرفة الدردشة: الدردشة على برقية، الدردشة على gitter
- مجموعة QQ: 343118190 (كامل)، 662147501
- Wechat العامة: tboox-os