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

15 KiB

v0.29.0 (2022-01)

  • [fix] nazalog: windows 日志无法按天翻滚
  • [feat] chartbar: 可配置隐藏Name和Num
  • [opt] chartbar: 都是整数则不显示小数部分
  • [opt] chartbar: 都是小整数则按原始值绘制

v0.28.2 (2021-12)

  • [opt] nazahttp: 增强兼容性解析http header时存在没有冒号的行。把没有冒号的行内容判定为属于上一个header的value

v0.28.1 (2021-12)

  • [feat] mock: 增加Sleep函数
  • [fix] nazabytes: 修复Write函数错误写入的bug

v0.28.0 (2021-11)

  • [feat] dataops: 增加SliceAllOf和SliceMinMax函数
  • [refactor] nazabytes: 删除package nazastring部分内容重构后移入package nazabytes中

v0.27.2 (2021-11)

  • [fix] nazahttp: 修复ReadHttpHeader读取不完整就返回错误的bug
  • [fix] nazahttp: 增加解析http header first line的兼容性

v0.26.0 (2021-11)

  • [feat] nazaerrors: Wrap函数可填入补充信息
  • [refactor] nazahttp: 丰富error信息

v0.25.0 (2021-11)

  • [feat] package nazabytes: 新增包提供Buffer struct
  • [feat] package dataops: 新增包,用于处理数据,比如切片类型转换,计数等等
  • [feat] package chartbar: 支持负数; 支持只绘制容器中的部分元素; 支持配置柱状图样式
  • [refactor] 删除pkg/fake/time.go

v0.24.0 (2021-11)

  • [feat] package mock: 新增的包目前可以模拟标准库中的time.Now, time.NewTimer
  • [refactor] 移除package/ic

v0.23.0 (2021-10)

  • [refactor] package nazacolor: color包重命名为nazacolor
  • [fix] package chartbar: 解决中文对齐问题
  • [chore] min golang version 1.13 -> 1.14

v0.22.0 (2021-10)

  • [feat] package chartbar: 可外部指定排序方式

v0.21.1 (2021-10)

  • [feat] package connection: 增加Writev函数

v0.21.0 (2021-10)

  • [feat] package color: 新包,控制台打印颜色相关
  • [refactor] package nazalog: 颜色相关的改为依赖package color

v0.20.2 (2021-09)

  • [feat] package nazajson: 新增函数CollectNotExistFields用于收集json中所有不存在的字段
  • [feat] package log: 暴露一些ASCII打印颜色的字符串常量

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)

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

第一个版本