Skip to content

Releases: kercylan98/minotaur

v0.5.0

12 Jan 10:47
b0c4be1
Compare
Choose a tag to compare

0.5.0 (2024-01-12)

Other | 其他更改

  • 优化 collection.map 相关函数签名,优化使用体验 (8d0cbed)
  • 优化 server 包 http 包装器使用体验 (8eb9965)

Features | 新特性

  • server 支持通过 WithLowMessageDuration、WithAsyncLowMessageDuration 函数设置慢消息阈值 (4e1d075)
  • server.Server 在执行 Shutdown 时将会等待所有消息分发器被释放 (4f2850b)
  • sher 包增加部分转换和去重相关函数 (2ff360c)
  • sher 包新增 FindInSlice 和 FindInSliceByBinary 函数 (96953d7)
  • sher 包新增将任一切片转换为 []any 的函数 (bb06cbf)
  • 优化 log 包,支持动态修改日志级别 (3e41068)

Bug Fixes | 修复

  • 修复 dispatcher.Dispatcher 在消息归零的时候使用协程运行处理函数可能导致不可知问题的情况,修复消息消费时获取生产者可能已经被释放的问题。修复在无消息时候设置消息完成处理函数不会触发一次的问题 (7528dc4)
  • 修复 server 包异步分流消息的回调函数在取消分流渠道绑定后会在系统分流渠道执行的问题 (e760ef2)
  • 修复 server 包连接断开消息分发器阻塞的问题,优化等待消息时打印的日志频率 (af23744)
  • 修复 server 包部分问题,修复 log 包在 init 函数调用可能产生的空指针问题 (3402c83)
  • 修复 server.Service 初始化的 for 循环指针问题 (b633f1a)
  • 修复配置导出 go 代码文件时,引用包错误的问题 (790e317)

Styling | 可读性优化

  • 优化 server 包部分代码可读性 (3b71eca)

Code Refactoring | 重构

  • 移除 slice 包和 hash 包,新增 listings、mappings 包存放数组、切片、映射等数据结构,原 slice、hash 包中的工具函数迁移至 collection 包,与 sher 包合并并移除 sher 包。完善 collection 包测试用例 (66d9034)
  • 迁移 concurrent.BalanceMap 至 mappings.SyncMap,优化泛型函数签名 (e3475c6)
  • 迁移 concurrent.Pool 至 hub.ObjectPool,并将 concurrent 包更名为 hub (161fbfe)
  • 迁移 concurrent.Slice 至 listings.SyncSlice (e28a5a2)
  • 重构 log 包,由 zap 改为 slog (71a3b34)
  • 重构 server 包分流渠道设计,修复部分问题 (3408c21)

Tests | 新增或优化测试用例

  • collection 包完善测试用例 (e3d966e)
  • dispatcher 包完善测试用例 (6f78684)
  • dispatcher 包完善测试用例 (90b7e4c)
  • 完善 collection 包测试用例 (e30c578)
  • 完善 dispatcher.Dispatcher 注释及测试用例 (a2a9199)
  • 完善 hub.ObjectPool 测试用例 (c439ef6)

v0.4.4

03 Jan 09:02
985eb81
Compare
Choose a tag to compare

0.4.4 (2024-01-03)

Other | 其他更改

  • server 包部分内容可读性优化,增加健壮度 (472fdc3)

Features | 新特性

  • sher 包新增 map 相关映射操作 (7086281)
  • sher 包新增将任一切片转换为 []any 的函数 (bb06cbf)
  • super 包新增 TryWriteChannel 函数,支持尝试性的对 channel 进行写入 (5b53e8a)
  • super 包新增 TryWriteChannelByHandler 函数,支持尝试写入 channel,如果 channel 无法写入则执行 handler (efbde3e)
  • 修复 HTTP 服务器慢消息空指针问题 (31c68e4)
  • 修复 HTTP 服务器满消息空指针问题 (68bc005)
  • 新增 utils/sher 包,包含了对 slice 及 hash 常用的操作函数。用于未来对 utils/slice 和 utils/hash 包进行替换 (515cbc6)

Bug Fixes | 修复

  • 修复 server.hub 广播时未解锁的问题,优化处理逻辑 (80f38ff)

Code Refactoring | 重构

  • 优化 slice 包中的 Copy 和 CopyMatrix 的函数签名和实现方式,不影响已有代码 (cf42ed6)
  • 移除 reflects.DeepCopy 无效函数 (a7b0497)
  • 重构 log 包,由 zap 改为 slog (71a3b34)

Performance Improvements | 性能优化

  • 优化 server.Server 连接管理机制,优化 GetOnlineCount、GetOnlineBotCount 性能 (5e5fe8a)

v0.4.3

27 Dec 08:44
c11c801
Compare
Choose a tag to compare

0.4.3 (2023-12-27)

Other | 其他更改

Features | 新特性

  • reflects 包新增 FuncWrapper 相关函数 (5a898f5)

Bug Fixes | 修复

  • 修改 ShowServersInfo 函数可见性,修复服务器地址打印的指针问题 (26aa2d9)

Performance Improvements | 性能优化

  • client 包由无界缓冲区调整为基于 chan 实现的缓冲区,新增 RunByBufferSize 函数支持以指定缓冲区大小运行 (bdbcc1b)

v0.4.2

26 Dec 03:17
0d5984b
Compare
Choose a tag to compare

0.4.2 (2023-12-26)

Other | 其他更改

  • 优化 server 包中 websocket 消息类型常量的指向 (2639412)
  • 移除无用的 server.ConnReadonly (aaa0079)

Features | 新特性

  • server 包新增 service 模式的加载函数 server.BindService (bdf4a23)
  • server 包新增 WithWebsocketConnInitializer 函数,支持对 websocket 连接打开后进行初始化设置 (7ee4b89)
  • server 包新增 WithWebsocketUpgrade 函数,支持自定义 websocket.Upgrader (e960d07)
  • super 包新增 RecoverTransform 函数,用于将 recover() 结果转化为 error (7efe88a)

Bug Fixes | 修复

  • 修复 room_options.go 中空指针检查方式错误的问题 (556d1cd)
  • 修复 server 中分流定时消息无法命中分流渠道的问题 (de43f53)
  • 修复 server.WithDispatcherBufferSize 过小的情况下,在消息中发布新消息导致永久阻塞的问题 (b39625c)

Docs | 文档优化

  • README.md 架构图优化 (bd150a3)

Styling | 可读性优化

  • 优化 server 包代码可读性 (af0a5a1)

v0.4.1

25 Dec 03:26
702e8e7
Compare
Choose a tag to compare

0.4.1 (2023-12-25)

Other | 其他更改

  • 示例及 buffer README.md 更新 (c3e1581)
  • 移除 writeloop 的 defer recover 行为,发生未处理错误将不再 panic,更改为输出 Error 日志 (32576fb)

Features | 新特性

  • compress 新增 tar 和 zip 解压缩函数 (6bd987f)
  • huge 包新增 Float 实现 (af189ab)
  • server 包增加消息统计相关函数 (05aeed0)
  • server 包新增 WithDisableAutomaticReleaseShunt 可选项,可禁止分流渠道自动释放。增加 ReleaseShunt、HasShunt、GetShuntNum 等函数。优化系统分流渠道将不再能够被释放 (d9ef347)
  • space.RoomController 支持设置房主 (a269845)

Bug Fixes | 修复

  • lockstep 定时器导致空指针问题处理 (ceffa2e)
  • 修复 space.RoomManager.AssumeControl 函数编译错误的问题 (3f099e6)

Docs | 文档优化

  • activity 和 fight 包文档优化 (7693518)
  • game 文档错误修正 (e43185f)
  • 优化 aoi、arrangement、buffer、combination、compress 包文档 (1afae90)
  • 增加 lockstep 包 README.md 文档 (aebdb53)
  • 增加 space 包 README.md 文档,优化 room 相关内容可读性 (9d9f7a3)
  • 增加 writeloop 文档 (307e500)
  • 补充 writeloop 的 README.md 相关的 Channel 部分 (610ee0d)

Code Refactoring | 重构

  • server.Server 兼容新的 concurrent.Pool 和 buffer.Unbounded (eb28d42)
  • writeloop.WriteLoop 更名为 Unbounded,新增基于 chan 实现的 WriteLoop (4b85cea)
  • 优化 concurrent.Pool 的实现,移除构造函数中对 size 的要求。更改为使用 sync.Pool 的内置实现 (3877b28)
  • 移除不再适用的 game.Player 和 builtin 包 (7b4d6bc)

Performance Improvements | 性能优化

  • 去除 buffer.Unbounded 不必要的构造函数和 nil 字段 (7111350)
  • 更改 server 和 conn 的消息实现为 channel (d27fa7c)

Tests | 新增或优化测试用例

  • concurrent.Pool 增加测试用例 (8f4e652)
  • writeloop 包增加测试用例 (f52d73e)
  • 增加 buffer.Unbounded 测试用例 (cc5274c)

v0.4.0

22 Dec 03:33
92ad1a8
Compare
Choose a tag to compare

0.4.0 (2023-12-22)

Other | 其他更改

  • 更新 README.md Server 架构图 (19b4509)
  • 更新 README.md 文件 (ab71777)

Docs | 文档优化

  • 优化 game 包 README.md (b86d0ef)

Code Refactoring | 重构

  • 将 fsm 包从 game 包中移动至 utils 包 (4ce6043)
  • 将 moving、aoi、leaderboard 包从 game 包中移动至 utils 包 (f26feb8)
  • 移除 game 包中不合理的 Actor、Position2D、Position2DSet、Position3D 接口 (2b13b19)
  • 移除 game 包中大量陈旧及不合理设计 (af0165a)
  • 移除 router 包中已过时的 Level1Router、Level2Router、Level3Router,可使用 router.Multistage 进行替代 (c4e2034)
  • 移除不再推荐的 room 包,可使用 space 包进行替代 (197fcfd)
  • 移除过时的 poker 包。其中 poker.Rule 的可替代品为 combination.Combination、combination.Matcher、combination.Validator,poker.CardPile 的可替代品为 deck.Deck、deck.Group (41246ef)
  • 移除过时的 round.Round 实现,使用 round.TurnBased 替代 (1e0ef4b)
  • 移除过时的 server.NewHttpWrapper 函数、server.Server.HttpServer 函数当需要使用 Gin 相关功能时不再需要通过 Gin 函数获取 (fde6d52)
  • 重构 aoi 包实现,移除对 game.Actor、game.Position2D 等接口的依赖 (d56ebde)
  • 重构 moving 包实现,移除对 game.Actor、game.Position2D 等接口的依赖 (0a22f6d)

v0.3.6

21 Dec 06:49
1ae1e04
Compare
Choose a tag to compare

0.3.6 (2023-12-21)

Other | 其他更改

  • Russh vulnerable to Prefix Truncation Attack against ChaCha20-Poly1305 and Encrypt-then-MAC #7 (34a680e)
  • 优化 server 包消息分发 cancel 处理逻辑 (e60017c)
  • 优化 server 包消息分发时对于 cancel 的处理逻辑 (2ff7db9)
  • 优化 server 包部分 error 的处理方式 (82ecb98)
  • 修改 server.WithTicker 将不再使用标准池的定时器,而是自行维护定时器池 (4f3b4eb)

Features | 新特性

  • generic 包新增 Unsigned 表示无符号整数的约束类型 (9371890)
  • slice 包新增 PagedSlice 结构,它通过分页管理内存并减少频繁的内存分配来提高性能 (7069431)
  • super 包新增比特掩码类型 BitMask,可通过 super.Mask 函数创建。该类型可替代 super.Permission (38cc312)
  • super.RetryByExponentialBackoff 和 super.ConditionalRetryByExponentialBackoff 支持设置忽略的错误,当返回忽略的错误时将不再进行重试 (5714a43)
  • timer.Pool 新增 Release 函数,可主动释放池中的所有定时器及池子本身 (ae98963)
  • timer.Ticker 新增 CronByInstantly 函数,支持在设置定时任务前先执行一次任务 (12619b5)
  • 优化 timer 包的 GetTicker 获取到的为内置定时器池中的定时器,可通过 timer.NewTimer 创建定时器池另行使用 (1ae1c8d)
  • 移除 super.BitMask 以 super.BitSet 替代,super.BitSet 是一个可动态增长的比特位集合 (05c65e9)

Bug Fixes | 修复

  • 修复 server 包未使用 KCP 服务器时会有额外的定时器损耗的问题 (4d72e8c)
  • 修复 server.Server 在使用 UseShunt 函数时由于未记录当前分发器导致的内存泄漏问题 (7e09229)
  • 修复 timer.Ticker 和 lockstep 包存在的内存泄漏问题 (508e30f)
  • 修复 timer.Ticker 的 CronByInstantly 函数导致的死锁问题 (8a8610f)

Styling | 可读性优化

  • 修改 timer.Timer 名字为 timer.Pool (50181c7)
  • 移除 server 慢消息无意义的堆栈信息,优化消息的 String 函数返回的不再是简单的消息类型 (ba24b09)

Performance Improvements | 性能优化

  • 移除 lockstep 对 timer.Ticket 的依赖,更改为 time.Ticker 实现,减少不必要的资源占用 (9038bfc)

v0.3.5

11 Dec 04:03
15a2c21
Compare
Choose a tag to compare

0.3.5 (2023-12-11)

Features | 新特性

  • maths 新增 MakeLastDigitsZero 函数,用于将传入数字的末位 n 位设置为 0 (f060af2)
  • server 新增 DeadlockDetectEvent,以便于发生疑似死锁时刻能够执行通知等行为 (b4ade2c)
  • super 包新增 NumberToRome 函数,支持将整数转为罗马数字 (5ffd816)

Bug Fixes | 修复

  • 修复 file.ReadLineWithParallel 函数由于错误的读取数量导致重复读和效率低下的问题 (f19e7cc)
  • 修复 file.ReadLineWithParallel 函数返回的偏移值不准确的问题 (f3ae5a3)
  • 修复 log 日志切割不生效问题 (9068c57)

Docs | 文档优化

  • README.md 分流服务器说明优化 (342d3cd)

Code Refactoring | 重构

  • 调整配置导表工具中 Go 配置文件导出结构,将直接读取更改为线程安全的读取 (8b2f2aa)

Tests | 新增或优化测试用例

  • super 包中新增版本比较相关的测试用例 (52c92c8)

v0.3.4

01 Dec 08:49
5a1bfd7
Compare
Choose a tag to compare

0.3.4 (2023-12-01)

Features | 新特性

  • huge.Int 增加部分辅助函数 (6127fb6)
  • sole 包支持获取自增循环的 id,同时支持自增循环的 string 类型的数字 id (8e94a66)
  • super 包新增 OldVersion 和 CompareVersion 函数用于版本比较 (23d2235)

Bug Fixes | 修复

  • log 包日志配置无效问题修复 (c6b929a)
  • 修复 ReadLineWithParallel 当读取到文件尾时,返回的 offset 有误的问题 (f6ea696)

Docs | 文档优化

  • 修正 @kuchaguangjie#67 提到的 README.md 服务器定时器示例错误、补充 WithTicker 函数注释 (6922999)
  • 更新 README.md 文件中对于分流服务器部分的说明 (61b4ef7)

Code Refactoring | 重构

  • 优化及重构 server 包关于 WebSocket 的消息类型和消息分流部分内容 (dc557a0)
  • 重构日志模块并清理未使用的依赖 (d3ad49d)

Tests | 新增或优化测试用例

  • 为 buffer.Unbounded 添加基准测试 (08115d4)

v0.3.3

28 Nov 04:15
4b2bd07
Compare
Choose a tag to compare

0.3.3 (2023-11-28)

Features | 新特性

  • server.Server 默认开启数据包大小警告,可通过 server.WithPacketWarnSize 关闭或调整警告大小,默认为 1MB (173dd11)
  • str 包新增 SortJoin 函数,在执行 Join 前对字符串进行排序再拼接 (844fb30)
  • survey 包支持对报告字段进行格式化处理 (ed5be97)
  • timer.Ticker 新增 Cron 函数,支持通过 Cron 表达式下发定时任务 (4117607)
  • 为 survey 包增加增量读取功能并改善错误处理 (9f27da2)
  • 增加了增量读取功能并改善了错误处理 (b11baa3)

Bug Fixes | 修复

  • 修复 activity 类型转换错误问题,增加案例目录 activity/internal/example (3a33947)

Docs | 文档优化

Performance Improvements | 性能优化

  • activity 包整体使用体验及性能优化,减少不必要的转换及反射,优化代码结构,优化可读性 (605a308)