Releases: tboox/tbox
Releases · tboox/tbox
tbox v1.6.5
tbox v1.6.4
New features
- #70: Add
tb_stream_init_from_sock_ref()
to open a given socket as stream - Add stdfile api to read/write stdin, stdout and stderr.
- #81: Add set/get thread/process cpu affinity
- Add filelock api
- Add anonymous and named pipe
Changes
- Optimize queue_buffer module
- Improve stream interfaces
- Improve charset encoding and add ANSI support
- Improve atomic and add c11-like atomic apis
- Improve spinlock
- Support to redirect process output to pipe
- Uses virtual memory for coroutine stack
- Improve openssl/mbedtls for https
新特性
- #70: 添加
tb_stream_init_from_sock_ref()
接口去直接打开一个socket作为stream去读取数据。 - 添加stdfile接口去读写stdin, stdout和stderr。
- #81: 添加对进程和线程的cpu亲缘性设置和获取
- 添加filelock文件锁跨平台api接口
- 添加匿名管道,命名管道支持
改进
- 优化queue_buffer模块
- 改进stream接口实现
- 改进字符集编码转换,以及增加对ANSI编码的支持
- 改进原子操作,并增加c11风格原子接口
- 改进spinlock实现
- 新增进程输出重定向到管道
- 针对协程栈使用虚拟内存
- 改进基于openssl/mbedtls的https访问
tbox v1.6.3
New features
- #24: Support IOCP for coroutine on windows
Changes
- Move docs directory to tbox-docs repo
- Support tinyc compiler
- Remove deprecated module (asio), please use coroutine module
- Improve memory for container
- Help valgrind to understand coroutines
Bugs fixed
- Fix the charset problem of envirnoment variables
- Fix process exit bug
- Fix setenv empty value crash
- Fix coroutine.sleep bug
- Fix windows root path bug
- Fix thread local memory leak
- Fix context bug for coroutine
- Fix
tb_vsnprintf
overflow - #43: Fix read dns server and stream bug
新特性
- #24: 针对windows平台下的协程处理,增加IOCP支持
改进
- 移除docs目录,放置到独立tbox-docs仓库,减少tbox.zip包大小
- 支持tinyc编译器
- 移除被废弃的模块(asio模块,先用coroutine代替)
- 精简优化容器库内存资源使用
- 帮助valgrind更好的理解coroutine
Bugs修复
- 修复windows环境变量的中文编码问题
- 修复后台进程退出问题
- 修复设置环境变量值为空时的崩溃问题
- 修复协程sleep超时覆写数据的bug
- 修复windows根路径问题
- 修复tls线程存储内存泄露问题
- 修复context切换问题
- 修复
tb_vsnprintf
栈溢出问题 - #43: 修复读取dns服务器以及stream读取bug
tbox v1.6.2
New features
- Add ping demo for network
Changes
- Modify license to Apache License 2.0
- Rename
--smallest=y|n
option to--small=y|n
- Support stat64
- Improve copy speed and fix permissions for
tb_file_copy
- Improve path operation for posix platform
- Improve socket interfaces and support icmp
- Improve xmake.lua and remove binary packages
Bugs fixed
- Fix create file mode to 0644
- Fix file and directory path bug
- Fix remove directory with dead symbol link failed
- Fix remove readonly file failed
- #34: Fix cache time and coroutine sleep bug
- #35: Fix epoll bug with the edge trigger mode
新特性
- 增加ping测试程序
改进
- 修改license,使用更加宽松的Apache License 2.0
- 重命名
--smallest=y|n
选项到--small=y|n
- 使用
stat64
支持大文件信息获取 - 改进
tb_file_copy
,更加快速的文件copy,并且修复copy后文件权限丢失问题 - 改进posix平台下的路径操作
- 改进socket初始化接口,支持icmp协议
- 改进xmake.lua,移除内置二进制依赖包文件
Bugs修复
tbox v1.6.1
New features
- Support coroutine context switch for mips
- Add
__tb_thread_local__
keyword macro - Add
--micro=y|n
option to compiling micro library (~64K) for the embed system - Add
tb_addrinfo_addr
andtb_addrinfo_name
interfaces - Add stackless coroutine
- Add semaphone and lock for the stackless coroutine
Changes
- Optimize io scheduler for coroutine, cache events for poller
- Add c11 _Static_assert
- Remove some deprecated interfaces for hash and platform
新特性
- 针对协程上下文切换,支持mips架构
- 添加
__tb_thread_local__
关键字宏 - 添加
--micro=y|n
选项,实现极小编译,针对嵌入式平台,编译tbox微内核(~64K) - 添加
tb_addrinfo_addr
andtb_addrinfo_name
接口 - 添加stackless协程,更加轻量的协程支持,每个协程只占用几十个bytes,同时支持io调度
- 针对stackless协程,增加lock和semaphone支持
改进
- 为协程优化io调度器,缓存poller轮询等待,减少频繁重复调用epoll_ctl, kevent等系统接口
- 添加对c11关键字_Static_assert的支持
- 针对hash和platform模块,移除一些废弃的接口
tbox v1.6.0
New features
- Support make command and compile directly without xmake
- Add switch context interfaces into platform module
- Add coroutine module (supports i386, x86_64, arm, arm64 ..)
- Add simple http server demo using coroutine
- Add simple spider using coroutine
- Add io poller interfaces(with epoll, poll, kqueue, select)
- Support mbedtls ssl library
- All io modules(stream, socket, http, ..) support coroutine mode
- Provide lock, semaphone and channel for coroutine
Changes
- Optimize and rewrite thread local store module
- Modify thread interfaces
- Mark the asio module as deprecated
- Optimize exception interfaces
Bugs fixed
- Fix some warning and errors for compiler
- Fix some thread bugs
- Fix parse bplist uid type
新特性
- 支持make进行直接编译(会去自动下载xmake进行构建)
- 在平台库中,添加切换context上下文接口(参考boost.context实现原理进行重写,并对部分架构进行优化)
- 新增跨平台协程模块(支持i386, x86_64, arm, arm64),提供更加易用的高性能并发编程模式
- 新增基于协程的各种服务器开发实例(包括:简单轻量的http服务器,爬虫。。)
- 新增poller轮询器接口,实现对epoll, poll, kqueue, select的封装,逐步取代老的aiop接口
- 新增mbedtls ssl库接口支持,目前已支持:openssl, polarssl, mbedtls
- tbox所有stream, socket, http, dns, ssl 等io相关操作,原生支持协程模式,并且可以在线程和协程间随意切换
- 为协程提供lock, semaphone, channel模块
改进
- 优化和重构线程局部存储TLS模块
- 修改部分线程接口
- asio模块被标记为废弃接口,下个版本将会被移除,逐步使用协程模式来实现异步io开发
- 优化异常捕获接口
Bugs修复
- 修复一些编译警告和错误
- 修复一些线相关bug
- 修复bplist中解析uid类型失败问题
tbox v1.5.3
New features
- Add wait multi-processes interface
- Add uuid generator
- Add hash library module
- Add
__tb_deprecated__
keyword and option
Changes
- Move some utils interfaces to the hash module
- Rewrite random generator
Bugs fixed
- Fix stdout compatibility issue for vs2015
- Fix process arguments length limit
新特性
- 增加同时等待多个进程接口
- 增加uuid生成器
- 增加hash库模块
- 添加
__tb_deprecated__
关键字以及配置选项
改进
- 移动部分utils接口到hash模块
- 重写random生成器
Bugs修复
- 修复stdout在vs2015以上版本的兼容性问题
- 修复进程参数长度限制
tbox v1.5.2
New features
- Add smallest configure option
- Add process operation interfaces
Changes
- Improve envirnoment interfaces
- Modify xmake.lua for supporting xmake v2.x
Bugs fixed
- Fix ltimer bug
- Fix asio memory leaks bug
- Fix asio httpd response bug on linux
- Fix path bug for windows
新特性
- 增加smallest参数配置选项,实现一键配置最小化编译,禁用所有扩展模块和依赖库
- 增加进程创建和控制接口
改进
- 增强环境变量设置接口
- 修改xmake.lua支持最新版xmake v2.x, 简化编译配置
Bugs修复
- 修复ltimer定时器不准问题
- 修复asio部分内存泄露问题
- 修复asio/httpd在linux下keepalive模式,响应很慢问题
- 修复windows下路径处理的一些bug
tbox v1.5.1
New features
- Add automaticlly check libc interfaces
- Support custom allocator
- Add trace for allocator in the debug mode
- Add
static_pool
module - Add stream interfaces for reading all data to string
- Add adler32 hash algorithm
- Add
tb_memmem
interface - Add regex module with pcre, pcre2 or posix regex
Changes
- Optimize stream and support read/write character device file
- Modify
tb_init
api and support allocator arguments - Improve memory manager and use the allocator mode
- Redefine
assert
and will abort for debug mode
Bugs fixed
- Fix some bugs for android
- Fix seek bug for stream
新特性
- 自动检测所有系统libc接口,优先使用系统版本
- 支持自定义内存分配器,并且能够在debug模式下,获取每次分配的代码位置信息,用于自定义追踪
- 增加轻量级
static_pool
来维护整块buffer的内存分配,适合局部管理部分内存,pool虽然也能维护,但是底层基于large_pool
,比较重量级,适合全局管理内存 - 增加stream快速读取全部数据到string的接口
- 增加adler32 hash算法
- 增加
tb_memmem
接口 - 采用pcre/pcre2/posix regex实现正则表达式库
改进
- 优化stream,支持对字符设备文件的读写
- 修改
tb_init
接口,增加allocator自定义内存分配器参数,实现用户的侵入式内存管理 - 重构内存管理,完全采用分配器allocator模式,可以灵活切换内存管理,支持原生系统内存、静态buffer内存、内存池等各种分配方式
- 重定义assert,debug模式遇到assert直接abort执行
Bugs修复
- 修复android下的一些bug
- 修复stream的seek问题
tbox v1.5.0
fix perm for mkdir