TBOX is a multi-platform c library for unix, windows, mac, ios, android, etc. It's made available under the Apache License 2.0.

TBOX includes asio, stream, network, container, algorithm, object, memory, database, string, charset, math, libc, libm, utils and other library modules.

TBOX

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

TBOX

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.

TBOX

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.

External links

TBOX

C (programming language) libraries

Free computer libraries