TBOX is a mutli-platform c library for unix, windows, mac, ios, android, etc.
Contents
- The stream io library
- The asynchronous io library
- The database library
- The xml parser library
- The serialization and deserialization library
- The memory library
- The container library
- The algorithm library
- The network library
- The platform library
- The charset library
- The zip library
- The utils library
- The math library
- The libc library
- The libm library
- References
It includes asio, stream, network, container, algorithm, object, memory, database, string, charset, math, libc, libm, utils and other library modules.
The stream io library
- supports file, data, http and socket source
- supports the stream filter for gzip charset and ..
- implements the multi-stream transfer using asio
The asynchronous io library
- supports reactor and proactor mode
- using epoll, poll, select, kqueue and iocp os system api
The database library
- supports mysql and sqlite3 database and enumerates data using the iterator mode
The xml parser library
- supports DOM and SAX mode and supports xpath.
The serialization and deserialization library.
- supports xml, json, bplist, xplist, binary formats
The memory library
- implements some memory pools for optimizating memory.
- supports fast memory error detecting. it can detect the following types of bugs for the debug mode:
- # out-of-bounds accesses to heap and globals
- # use-after-free
- # double-free, invalid free
- # memory leaks
The container library
- implements hash table, single list, double list, vector, stack, queue and min/max heap.
- supports iterator mode for algorithm.
The algorithm library
- using the iterator mode
- implements find, binary find and reverse find algorithm.
- implements sort, bubble sort, quick sort, heap sort and insert sort algorithm.
- implements count, walk items, reverse walk items, for_all and rfor_all.
The network library
- implements dns(cached), ssl(openssl and polarssl), http and cookies
- supports asynchronous io mode for dns, ssl and http using the asio and stream library
The platform library
- implements timer, faster and lower precision timer
- implements atomic and atomic64 operation
- implements spinlock, mutex, event, semaphore, thread and thread pool
- implements file, socket operation
The charset library
- supports utf8, utf16, gbk, gb2312, uc2 and uc4
- supports big endian and little endian mode
The zip library
- supports gzip, zlibraw, zlib formats using the zlib library if exists
- implements lzsw, lz77 and rlc algorithm
The utils library
- implements base32, base64, md5 and sha algorithm
- implements assert and trace output for the debug mode
The math library
- implements random generator
- implements fast fixed-point calculation, supports 6-bits, 16-bits, 30-bits fixed-point number
The libc library
- implements lightweight libc library interfaces, the interface name contains tb_xxx prefix for avoiding conflict.
- implements strixxx strrxxx wcsixxx wcsrxxx interface extension.
- optimizates some frequently-used interface, .e.g. memset, memcpy, strcpy ...
- implements memset_u16, memset_u32, memset_u64 extension interfaces.
The libm library
- implements lightweight libm library interfaces, the interface name contains tb_xxx prefix for avoiding conflict.
- supports float and double type.
References
TBOX Wikipedia(Text) CC BY-SA