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

348 lines
12 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#### 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使用
#### v0.18.4 (2021-04)
- [feat] filesystemlayer: 新的包,提供一层文件操作的抽象,可以使用内存替换磁盘作为存储
- [refactor] sync: Mutex中使用unique.SingleGenerator
#### v0.18.3 (2021-04)
- [perf] nazabits: 提高BitReader性能
- [feat] nazabits: 增加BitReader::SkipBitsSkipBytes函数用于跳过数据
- [feat] nazabits: 增加BitReader::AvailBits函数用于获取剩余可读bit数量
- [fix] nazaatomic: 匹配平台写错导致重定义
#### v0.18.2 (2021-04)
- [fix] package nazaatomic: mips mipsle两个32位的平台的64位原子整型使用mutex来避免崩溃
- [feat] package nazalog: Level和AssertBehavior两个枚举类型增加ReadableString返回对应的可读字符串
#### v0.18.1
- [feat] package nazasync:新增的package其中的Mutex可用于debug锁方面的问题
#### v0.18.0
- [feat] 新增package crypto: 内部包含PKCS5和PKCS7的加密、解密函数AES CBC的加密、解密函数
- [refactor] unique: 拆分成SingleGeneratorMultiGenerator业务方可以使用多个SingleGenerator来获得更高的性能
#### v0.17.1
- [feat] nazabits: BitReader增加一种使用方式可多次读取最后判断是否发生错误
- [feat] nazalog: 增加配置项 1 是否在每行日志首部添加时间戳的信息 2 时间戳是否精确到毫秒 3 日志是否包含日志级别字段
- [fix] nazaatomic: uint64和int64在32位系统时使用mutex替代标准库中的atomic避免崩溃见文章https://pengrl.com/p/21030/
#### v0.17.0
- [feat] package nazaerrors: 增加Wrap函数用于封装error
- [chore] 最低Go依赖版本提高至1.13
#### v0.16.1
- [feat] package nazastring增加SubSliceSafety函数安全的获取切片的子切片
- [feat] package nazaerrors增加CombineErrors函数将多个error组合成一个
#### 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远端地址
#### 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
#### 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
#### 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相关的接口
#### v0.9.1
- package nazabits:
- [feat] 新增package提供一些位运算函数
#### 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生成器
#### 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 解析器解析为为换行
#### 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
第一个版本