C 语言实现的跨平台开发库 TBOX( 二 )

  • 扩展部分常用接口,增加对sqrt、log2等常用函数的整数版本计算,进行高度优化,不涉及浮点运算,适合嵌入式环境使用 。
  • object库
    • 轻量级类Apple的CoreFoundation库,支持object、dictionary、array、string、number、date、data等常用对象,并且可以方便扩展自定义对象的序列化 。
    • 支持对xml、json、binary以及apple的plist(xplist/bplist)格式序列化和反序列化 。并且实现自有的binary序列化格式, 针对明文进行了简单的加密,在不影响性能的前提下,序列化后的大小比bplist节省30% 。
    平台库
    • 提供file、directory、socket、thread、time等常用系统接口
    • 提供atomic、atomic64接口
    • 提供高精度、低精度定时器
    • 提供高性能的线程池操作
    • 提供event、mutex、semaphore、spinlock等事件、互斥、信号量、自旋锁操作
    • 提供获取函数堆栈信息的接口,方便调试和错误定位
    • 提供跨平台动态库加载接口(如果系统支持的话)
    • 提供io轮询器,针对epoll, poll, select, kqueue进行跨平台封装
    • 提供跨平台上下文切换接口,主要用于协程实现,切换效率非常高
    压缩库
    • 支持zlib/zlibraw/gzip的压缩与解压(需要第三方zlib库支持) 。
    字符编码库
    • 支持utf8、utf16、gbk、gb2312、uc2、uc4 之间的互相转码,并且支持大小端格式 。
    实用工具库
    • 实现base64/32编解码
    • 实现crc32、adler32、md5、sha1等常用hash算法
    • 实现日志输出、断言等辅助调试工具
    • 实现url编解码
    • 实现位操作相关接口,支持各种数据格式的解析,可以对8bits、16bits、32bits、64bits、float、double以及任意bits的字段进行解析操作,并且同时支持大端、小端和本地端模式,并针对部分操作进行了优化,像static_stream、stream都有相关接口对其进行了封装,方便在流上进行快速数据解析 。
    • 实现swap16、swap32、swap64等位交换操作,并针对各个平台进行了优化 。
    • 实现一些高级的位处理接口,例如:位0的快速统计、前导0和前导1的快速位计数、后导01的快速位计数
    • 实现单例模块,可以对静态对象、实例对象进行快速的单例封装,实现全局线程安全
    • 实现option模块,对命令行参数进行解析,提供快速方便的命令行选项建立和解析操作,对于写终端程序还是很有帮助的
    正则表达式库
    • 支持匹配和替换操作
    • 支持全局、多行、大小写不敏感等模式
    • 使用pcre, pcre2和posix正则库




    推荐阅读