<small id='cD6jNT'></small> <noframes id='dASWbH'>

  • <tfoot id='NJ6DfOUW2H'></tfoot>

      <legend id='vUOJ'><style id='16wj'><dir id='2QiV4'><q id='oXq6yJ'></q></dir></style></legend>
      <i id='kWH8X'><tr id='lPzv1YCc'><dt id='1hSBvp'><q id='vX9Y'><span id='IPRTW'><b id='6kiHg9WUa'><form id='wDYRJ'><ins id='5WTAoa'></ins><ul id='wZqGDBACm'></ul><sub id='AzWROoj'></sub></form><legend id='HjvVS4i2WX'></legend><bdo id='Dqa3T'><pre id='rqxoMXl'><center id='fhIZ'></center></pre></bdo></b><th id='u2fEymN'></th></span></q></dt></tr></i><div id='qER9Bha'><tfoot id='SWdcZGpRva'></tfoot><dl id='5uJk6FU1TD'><fieldset id='ZtgfL1Vo'></fieldset></dl></div>

          <bdo id='HMc0'></bdo><ul id='6baWfJsM'></ul>

          1. <li id='ecX0'></li>
            登陆

            C 言语完成的跨渠道开发库 TBOX

            admin 2019-12-23 251人围观 ,发现0个评论

            TBOX概述

            TBOX 是一个用 C 言语完成的跨渠道开发库。针对各个渠道,封装了一致的接口,简化了各类开发进程中常用操作,使你在开发进程中,愈加重视实践运用的开发,而不是把时刻糟蹋在琐碎的接口兼容性上面,而且充沛运用了各个渠道独有的一些特性进行优化。这个项意图意图,是为了使 C 开发愈加的简略高效。而且供给微内核编译形式,针对嵌入式渠道进行优化,仅生成 64K 巨细的精简库。现在支撑的渠道有:

            • Windows
            • Macosx
            • Linux
            • Android
            • iOS

            TBOX功用

            流库

            针对http、file、socket、data等流数据,完成一致接口进行读写,而且支撑: 堵塞、非堵塞、异步 三种读写形式。 支撑中心添加多层filter流进行流过滤,完成边读取,内部边进行解压、编码转化、加密等操作,极大的减少了内存运用。首要供给以下模块:

            • stream:通用非堵塞流,用于一般的独自io处理,一起支撑协程以完成异步传输。
            • transfer:流传输器,保护两路流的传输。
            • static_stream:针对静态数据buffer优化的静态流,用于轻量快速的数据解析。

            协程库

            • 快速高效的协程切换支撑(详细功能参阅:基准测试报告)
            • 供给跨渠道支撑,中心切换算法参阅boost,而且对其进行重写和优化,现在支撑架构:x86, x86_64, arm, arm64
            • 供给channel协程间数据通信支撑,根据出产、顾客模型
            • 供给信号量、协程锁支撑
            • socket、stream都模块原生支撑协程,而且可在线程和协程间进行无缝切换
            • 供给http、file等根据协程的简略服务器实例,只需几百行代码,就能够从socket开端写个高功能io服务器,代码逻辑比异步回调形式愈加明晰
            • 供给stackfull和stackless两种协程形式支撑,接口相似,stackfull愈加灵敏易用, stackless愈加轻量高效

            数据库

            • 一致并简化数据库操作接口,适配各种数据源,经过一致的url来主动衔接翻开支撑的数据库,数据的枚举选用迭代器模型。
            • 现在支撑sqlite3以及mysql两种联系型数据库,也可自定义扩展运用其他联系型数据库。

            xml库

            • 针对xml供给DOM和SAX两种解析形式,SAX方法选用外部迭代形式,灵敏性和功能更高,而且能够挑选指定途径,进行解析。
            • 解析进程彻底根据stream,所以是高度流化的,能够完成边下载、边解压、边转码、边解析一条龙服务,运用较低的内存也能够解析大规模数据。
            • 供给xml writer以支撑对xml生成

            内存库

            • 参阅liC 言语完成的跨渠道开发库 TBOXnux内核内存办理机制的完成,并对其进行各种改造和优化,所完成的TBOX独有的一整套内存池办理架构。
            • 调试形式下,能够轻松检测并定位内存走漏、内存越界溢出、内存堆叠掩盖等常见内存问题,并对全体内存的运用进行了核算和扼要剖析。
            • 针对大块数据、小块数据、字符串数据进行了充沛的运用,避免了很多外部碎片和内部碎片的发生。分配操作进行了各种优化,96%的情况下,功率都是在O(1)。

            容器库

            • 供给哈希、链表、数组、行列、仓库、最小最大堆等常用容器。
            • 支撑各种常用成员类型,在原有的容器期初上,其成员类型还能够彻底自定义扩展。
            • 一切容器都支撑迭代器操作。
            • 大部分容器都能够支撑根据stream的序列化和反序列化操作。

            算法库

            • 供给各种排序算法:冒泡排序、堆排序、快速排序、插入排序。
            • 供给各种查找算法:线性遍历、二分法查找。
            • 供给各种遍历、删去、核算算法。
            • 以迭代器为接口,完成算法和容器的别离,相似stl,可是c完成的,愈加轻量。

            网络库

            • 完成http客户端模块
            • 完成cookies
            • 完成dns解析与缓存
            • 完成ssl(支撑openssl, polarssl, mbedtls)
            • 支撑ipv4、ipv6
            • 支撑经过协程完成异步形式

            数学运算库

            • 供给各种精度的定点运算支撑
            • 供给随机数生成器

            libc库

            • libc的一个轻量级完成,彻底跨渠道,而且针对不同架构进行了优化。
            • 支撑大部分字符串、宽C 言语完成的跨渠道开发库 TBOX字符串操作。
            • 扩展字符串、宽字符串的各种巨细写不灵敏操作接口
            • 扩展memset_u16、memset_u32等接口,并对其进行高度优化,特别合适图形烘托程序

            libm库

            • libm部分接口的一个轻量级完成,以及对常用体系接口的封装。(现在只完成了部分,之后有时刻会彻底完成掉)
            • 扩展部分常用接口,添加对sqrt、log2等常用函数的整数版别核算,进行高度优化,不触及浮点运算,合适嵌入式环境运用。

            object库

            • 轻量级类apple的CoreFoundation库,支撑object、dictionary、array、string、number、date、data等常用目标,而且能够便利扩展自定义目标的序列化。
            • 支撑对xml、json、binary以及apple的plist(xplist/bplist)格局序列化和反序列化。 而且完成自有的binary序列化格局, 针对明文进行了简略的加密,在不影响功能的前提下,序列化后的巨细比bplist节约30%。

            渠道库

            • 供C 言语完成的跨渠道开发库 TBOX给file、directory、socket、thread、time等常用体系接口
            • 供给atomic、atomic64接口
            • 供给高精度、低精度定时器
            • 供给高功能的线程池操作
            • 供给event、mutex、semaphore、spinlock等事情、互斥、信号量、自旋锁操作
            • 供给获取函数仓库信息的接口,便利调试和过错定位
            • 供给跨渠道动态库加载接口(假如体系支撑的话)
            • 供给io轮询器,针对epoll, poll, select, kqueue进行跨渠道封装
            • 供给跨渠道上下文切换接口,首要用于协程完成,切换功率十分高

            紧缩库

            • 支撑zlib/zlibraw/g小兵传奇zip的紧缩与解压(需求第三方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正则库
            请关注微信公众号
            微信二维码
            不容错过
            Powered By Z-BlogPHP