You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
naza/CHANGELOG.md

374 lines
13 KiB
Markdown

4 years ago
#### v0.20.1 (2021-08)
- [feat] package nazabits: 新增func ReadUeGolomb和ReadSeGolomb分别读取无符号和有符号哥伦布编码数据
- [feat] package nazalog: Assert函数可选择填入描述信息
- [fix] package connection: 先关闭net.Close再发送通知消息至channel
#### v0.20.0 (2021-07)
- [feat] package nazahttp: header支持重复键值
#### v0.19.3 (2021-07)
- [feat] package chartbar: 新的package用于在控制台绘制ascii柱状图
#### v0.19.2 (2021-06)
- [fix] package nazaatomic: arm32编译失败
#### v0.19.1 (2021-06)
- [feat] package nazasync: 优化Mutex的实现更方便的定位Mutex的问题
#### v0.19.0 (2021-06)
- [refactor] 重构naza整个项目的命名规则见 https://github.com/q191201771/lal/issues/87
4 years ago
#### v0.18.5 (2021-04)
- [feat] nazalog: 新增日志级别LevelTrace目前已有trace, debug, info, warn, error, fatal, panic
- [feat] nazalog: 新增日志级别LevelNothing初始化成这个级别的Logger不会打印任何内容
- [feat] nazalog: 提供一个Logger实例DummyLogger该实例不打印任何内容
- [feat] nazalog: 新增SetGlobalLogger业务方可以设置替换全局Logger
- [feat] nazalog: 新增GetGlobalLogger业务方可以获取全局Logger比如将全局Logger赋值给其他Logger使用
4 years ago
#### v0.18.4 (2021-04)
- [feat] filesystemlayer: 新的包,提供一层文件操作的抽象,可以使用内存替换磁盘作为存储
- [refactor] sync: Mutex中使用unique.SingleGenerator
4 years ago
#### v0.18.3 (2021-04)
- [perf] nazabits: 提高BitReader性能
- [feat] nazabits: 增加BitReader::SkipBitsSkipBytes函数用于跳过数据
- [feat] nazabits: 增加BitReader::AvailBits函数用于获取剩余可读bit数量
4 years ago
- [fix] nazaatomic: 匹配平台写错导致重定义
4 years ago
#### v0.18.2 (2021-04)
- [fix] package nazaatomic: mips mipsle两个32位的平台的64位原子整型使用mutex来避免崩溃
- [feat] package nazalog: Level和AssertBehavior两个枚举类型增加ReadableString返回对应的可读字符串
4 years ago
#### v0.18.1
- [feat] package nazasync:新增的package其中的Mutex可用于debug锁方面的问题
4 years ago
#### v0.18.0
- [feat] 新增package crypto: 内部包含PKCS5和PKCS7的加密、解密函数AES CBC的加密、解密函数
- [refactor] unique: 拆分成SingleGeneratorMultiGenerator业务方可以使用多个SingleGenerator来获得更高的性能
4 years ago
#### v0.17.1
- [feat] nazabits: BitReader增加一种使用方式可多次读取最后判断是否发生错误
- [feat] nazalog: 增加配置项 1 是否在每行日志首部添加时间戳的信息 2 时间戳是否精确到毫秒 3 日志是否包含日志级别字段
- [fix] nazaatomic: uint64和int64在32位系统时使用mutex替代标准库中的atomic避免崩溃见文章https://pengrl.com/p/21030/
4 years ago
#### v0.17.0
- [feat] package nazaerrors: 增加Wrap函数用于封装error
- [chore] 最低Go依赖版本提高至1.13
4 years ago
#### v0.16.1
- [feat] package nazastring增加SubSliceSafety函数安全的获取切片的子切片
- [feat] package nazaerrors增加CombineErrors函数将多个error组合成一个
4 years ago
#### v0.16.0
- [refactor] package nazahttp: 删除函数ReadHTTPRequest新增函数ReadHTTPRequestMessage函数ReadHTTPResponseMessage
#### v0.15.5
- [fix] package taskpool: 全局对象解析task参数错误
- [feat] package nazahttp: 新增函数ReadHTTPRequest读取HTTP请求并解析
#### v0.15.4
- [feat] 新增package defertaskthread用于执行延时任务
#### v0.15.3
- [feat] func UnmarshalRequestJsonBody 反序列化http json body
- [feat] func PostJson 序列化json数据做http post
#### v0.15.2
- [fix] package nazanet: 使用net.UDPConn方式初始化UDPConnection时可以同时初始化RAddr远端地址
4 years ago
#### v0.15.1
- [feat] package connection: 增加GetStat函数用于获取连接读取、发送数据的总字节数
#### v0.15.0
- [feat] package nazabits: 新增函数ReadBits64
- [feat] package nazanet: UDPConnection支持IPv6
- [refactor] package nazanet: UDPConnection构造函数支持更多配置
#### v0.14.0
- package nazanet:
- [refactor] 重构UDPConnection既可作为服务端连接又可作为客户端连接
- package nazastring:
- [feat] 增加func DumpSliceByte
5 years ago
#### v0.13.4
- package circularqueue:
- [feat] 新增package底层基于切片实现的固定容量大小的FIFO的环形队列
- package nazanet:
- [feat] 这是一个新增的package其中struct AvailUDPConnPool可以从指定的UDP端口范围内寻找可绑定监听的端口绑定监听并返回
- [feat] 新增struct UDPConnection对UDP连接对象的简易封装
- package bele:
- [feat] 新增func BEPutUint16, BEPutUint64
5 years ago
#### v0.13.3
- package nazahttp:
- [fix] 当request line和status line存在多个空格时解析错误
- package bininfo:
- [feat] 增加git tag信息
#### v0.13.2
- package nazareflect:
- [feat] 新增package提供三个函数IsNilEqualEqualInteger
#### v0.13.1
- package connection:
- [feat] 增加连接关闭标志使用channel发送数据时如果连接已关闭可以向调用方返回错误
- [feat] 增加Option.WriteChanFullBehavior使用channel发送数据时如果channel满了可以配置是阻塞还是返回错误
- [fix] 设置wChan大小时应该使用WriteChanSize而不是WriteBufSize
- [refactor] 不同错误返回不同的错误值
- [refactor] 去除一些debug日志
#### v0.13.0
- package nazabits:
- [feat] BitReader的所有函数增加读取越界检查
- [feat] 增加BitReader::ReadGolomb函数读取0阶指数哥伦布编码
- package nazahttp:
- [feat] nazahttp: 增加函数ReadHTTPHeaderParseHTTPRequestLineParseHTTPStatusLine读取HTTP头部信息
- [refactor] 函数GetHttpFileDownloadHTttpFile重命名为GetHTTPFileDownloadHTTPFile
#### v0.12.3
- package lru:
- [feat] 新增package一个基础的LRU缓存
- package nazahttp:
- [feat] 新增函数GetHttpFile用于下载HTTP文件
#### v0.12.2
- package nazabits:
- [fix] BitWriter::WriteBit如果原数据不为零值时会错误覆盖非写入的位
#### v0.12.1
- package nazabits:
- [feat] 新增 BitReader::ReadBits16ReadBits32ReadBytes函数
#### v0.12.0
- package nazabits:
- [refactor] BitReader::ReadBits重命名为ReadBits8BitWriter::WriteBits重命名为WriteBits8WriteBits16
- [fix] BitWriter::WriteBit传入的值不为0和1时只取最低位
#### v0.11.0
- package nazabits:
- [feat] 增加BitReader用于按位读取增加BitWriter用于按位写入
- [refactor] GetBit8等函数修改整型类型
#### v0.10.0
- package nazalog:
- [feat] 新增WithPrefix函数用于支持设置前缀并且前缀可叠加使得可以按repo package对象等维度添加不同的前缀
- [feat] 新增Println等函数方便替换标准库日志
- [perf] 减小锁粒度
- [test] 测试覆盖率增加至100%
- [refactor] 删除FatalIfErrorNotNil, PanicIfErrorNotNil, Outputf, writeShortFile四个函数函数
- package nazabits:
- [feat] 新增GetBit16GetBits16函数
- package fake:
- [feat] 新增WithRecover函数
- [feat] 新增time.Now hook相关的接口
- [refactor] 重新命名os.Exit hook相关的接口
5 years ago
#### v0.9.1
- package nazabits:
- [feat] 新增package提供一些位运算函数
5 years ago
5 years ago
#### v0.9.0
- package taskpool:
- [feat] 增加Option.MaxWorkerNum可配置最大协程并发数量
- [feat] task任务函数可携带参数
- package nazalog:
- [feat] 新增Assert函数并可配置断言失败后的行为
- package bele:
- [feat] 增加一些ReadXXX函数从io.Reader中读取数据
- [feat] 新增BEUint64函数
#### v0.8.0
- package ratelimit:
- [feat] 新增漏桶LeakyBucket和令牌桶TokenBucket把以前的RateLimit删了
- package nazalog:
- [feat] 新增Sync函数将日志刷盘
- [feat] panic和fatal前调用Sync
- [fix] 全局的Panic和Panicf忘记调用标准库中的panic
- [fix] 使用IsRotateDaily控制日志是否按天翻转之前没有判断这个标志导致总是按天翻转
- package nazahttp:
- [feat] 新增DownloadHttpFile函数下载http保持为本地文件
#### v0.7.1
- package snowflake
- [feat] 新增的包分布式唯一性64位ID生成器
5 years ago
#### v0.7.0
- package consistenthash:
- [feat] Nodes 接口返回 node 对应的 point 范围,供调用方判断 hash 是否均匀
- [feat] hash 函数可由外部配置
- [refactor] 增加 struct Option
- [refactor] 内部 point 类型 int -> uint32
- package bitrate:
- [feat]可配置 bitrate 返回时的单位
- [feat] unix 时间戳可选择由外部传入
- [refactor] struct Bitrate -> interface Bitrate
- [fix] 遍历切片时删除了元素导致崩溃
- package fake:
- [feat] 添加 func Exit它是对 os.Exit 的封装,便于其他代码做单元测试
- package log:
- [test] 使用 fake.Exit
#### v0.6.0
- 新增 package ratelimit限速器令牌桶
- 新增 package bitrate计算带宽
- 新增 package fake
- 删除 package mockwriter
- 删除 package mockserver
- `demo/add_blog_license`:行尾增加两个空格,便于部分 markdown 解析器解析为为换行
5 years ago
#### v0.5.1
- package ic:
- 新增的包,将整型切片压缩序列化成二进制字符切片
- package bininfo:
- 增加注释
- package assert:
- 增加注释
#### v0.5.0
- package filebatch:
- 遍历读取文件发生错误时,不退出遍历,而是将错误在回调中返回给上层
- package connection:
- bugfix初始化 write chan 相关的信息是通过 write chan 的配置,而不是 write buf 的配置
- package slicebytepool:
- 新增的包,一个 []byte 内存池
- package nazamd5:
- 新增的包md5 操作
- package consistenthash:
- 新增的包一致性hash
- package bufferpool:
- 删除 bufferpool 包
- demo/myapp:
- 用于演示 package bininfo 的使用
- `demo/add_blog_license`:
- 修改 license 内容
- 其他:
- 统一error变量的命名方式及内容格式涉及到的 packagefilebatch, connection, taskpool, nazalog
#### v0.4.3
- package bufferpool
- 新增的包bytes.Buffer 池
- package nazaatomic
- 新增的包,对 sync.atomic 的再封装
- package taskpool
- 新增的包,协程池
- test.sh
- 做更多的 go tools 检查
- `demo/add_blog_license`
- 修改许可证样式
- 检查许可证是否存在时,只检查声明两个字
- `demo/add_go_license`
- 用户名和邮箱由命令行参数传入
#### v0.4.2
- package filebatch:
- 新增的包,用于文件批处理操作
- 新增 demo/add_go_license给 Go 仓库的所有go源码文件添加MIT许可证
- 新增 demo/add_blog_license给我自己博客的所有文章尾部添加声明
#### v0.4.1
- package nazastring:
- 新增 func SliceByteToStringTmp 和 func StringToSliceByteTmp用于无拷贝的做string和[]byte的转换
#### v0.4.0
- package log:
- rename -> package nazalog
- mkdir 0777 and create file 0666, append if file exist
- 配置使用 Option
- 配置默认值修改: 打印至控制台开关默认打开,打印源码文件行号开关默认打开
- package connection:
- erase func Printf
- 配置使用 Option
- package nazajson:
- 新增包,作为系统包 json 的补充
- 其它:
- repo name nezha -> naza
#### v0.3.0
- package connection:
- 可配置使用 channel 进行异步发送Config 中增加 WChanSize。增加 Flush, Done, ModWriteChanSize 三个方法
- package log:
- 增加 panic 相关的方法
- 其它:
- test.sh 中添加 gofmt 检查
#### v0.2.0
- package log:
- 去除了对标准库中log的依赖
- 日志支持按天翻转
- 增加 ShortFileFlag 可配置是否打印源码文件及行号的信息
- 添加一个fatal日志级别打印完后exit程序
- 当同时打印至控制台和文件时打印至文件中的level字段也带颜色属性
- 增加 Out 接口
- 日志不再支持按固定大小翻转 [不兼容]
- 日志级别从0 -> 1开始 [不兼容]
#### v0.1.0
- 删除 /pkg/errors [不兼容]
- package log:
- 增加 FatalIfErrorNotNil 接口函数,打印错误并退出程序
- 日志内容中的级别字段右对齐
- 日志内容中的源码文件名和行号放在整行日志的末尾
- 增加一些 benchmark
- package assert: 打印正确的源码文件名和行号信息 [bugfix]
- package bele: 增加一些 benchmark
- package unique:
- 不同的 key 使用不同的自增计数
- 增加一些 benchmark
- package mockserver: 模拟一些服务端,用于快速测试其它代码
- package mockwriter: 模拟 Writer 接口,用于快速测试其它代码
- 删除 /demo/connstat
- test.sh 脚本只测试 /pkg 目录下的源码
#### v0.0.1
第一个版本