Skip to content

Latest commit

 

History

History
135 lines (115 loc) · 18.4 KB

CHANGELOG.md

File metadata and controls

135 lines (115 loc) · 18.4 KB

Changelog

0.6.1 (2024-08-17)

⚠ BREAKING CHANGES

  • configuration: configuration 包不再适用,它之前提供的配置表的导出功能目前已转移到 AX CLI 中。

Features

  • ax: 添加xlsx转换支持和配置生成 (818b80c)
  • collection: 添加 SliceSum 和 MapSum 函数 (b448e0a)

Code Refactoring

  • configuration: 移除不再适用的 configuration 包 (e389b55)

0.6.0 (2024-08-14)

⚠ BREAKING CHANGES

  • minotaur: ServerActor and ConnActor now use a more streamlined typing system that may affect consumers of the old API.
  • vivid: ActorId generation and parsing logic has been modified to support cluster identifiers. This may affect existing systems that rely on the previous format.
  • vivid: GetActorIdByActorRef function has been removed. Update yourcode to use the new Id() method from the ActorRef interface.
  • chrono: This modifies the internal scheduler logic, which might affect existing clients relying on the previous behavior.
  • vivid: Mailbox now requires an additional parameter for Enqueue method to specify if the message should be delivered instantly. This may affect the clients relying on the previous signature of the Enqueue method.

Features

  • actor-context: add discardOld parameter to Become method (0bf8601)
  • actor: implement idle timeout and improve actor termination (e306a53)
  • collection 包新增 ConvertSliceToBatches、ConvertMapKeysToBatches、ConvertMapValuesToBatches 函数,用于将切片或 map 转换为按特定数量分批的批次切片 (9dba7ff)
  • collection 包新增 Equel 命名前缀的用于比较切片和 map 元素是否相同的函数,新增 Loop 命名前缀的用于遍历切片和 map 元素的函数 (756f823)
  • collection 包新增 MergeSlice 函数,用于将多个同类型对象合并为一个切片 (4799a8c)
  • compress 新增 tar 和 zip 解压缩函数 (6bd987f)
  • examples: add websocket echo server implementation (671ed64)
  • geometry 包新增 SimpleCircle 结构体,用于表示仅由圆心及半径组成的圆形,包含投影、距离等常用函数。优化 geometry 中的计算函数,所有计算入参均会转换为 float64 运算,输出时转换回原有的泛型类型 (6846c9d)
  • huge 包 NewInt 函数支持 string、bool、float 类型 (c4605cc)
  • huge 包新增 Float 实现 (af189ab)
  • login: implement account module with basic authentication (929d706)
  • minotaur: add hooks for HTTP server customization (b6334f6)
  • minotaur: add hooks for HTTP server launch (beb79bf)
  • minotaur: add pprof support and improve application functions (875f881)
  • modular 包新增 Block 接口,当模块化服务实现 modular.Service 后可选择的实现 Block 接口,该接口将适用于具有阻塞等待需求的服务,例如网络服务器。 (3549fcc)
  • modular 包新增 dimension 概念,适用于根据特定宿主进行模块化,例如房间与房间之间的各组件相互隔离 (1402b85)
  • reflects 包新增 FuncWrapper 相关函数 (5a898f5)
  • server 包增加消息统计相关函数 (05aeed0)
  • server 包新增 service 模式的加载函数 server.BindService (bdf4a23)
  • server 包新增 WithDisableAutomaticReleaseShunt 可选项,可禁止分流渠道自动释放。增加 ReleaseShunt、HasShunt、GetShuntNum 等函数。优化系统分流渠道将不再能够被释放 (d9ef347)
  • server 包新增 WithWebsocketConnInitializer 函数,支持对 websocket 连接打开后进行初始化设置 (7ee4b89)
  • server 包新增 WithWebsocketUpgrade 函数,支持自定义 websocket.Upgrader (e960d07)
  • server 支持通过 WithLowMessageDuration、WithAsyncLowMessageDuration 函数设置慢消息阈值 (4e1d075)
  • server.MultipleServer 支持绑定 Service (6b24b7c)
  • server.Server 在执行 Shutdown 时将会等待所有消息分发器被释放 (4f2850b)
  • server.Server.LoadData 函数支持加载 any 类型的数据 (ebe7a70)
  • sher 包增加部分转换和去重相关函数 (2ff360c)
  • sher 包新增 FindInSlice 和 FindInSliceByBinary 函数 (96953d7)
  • sher 包新增 map 相关映射操作 (7086281)
  • sher 包新增将任一切片转换为 []any 的函数 (bb06cbf)
  • space.RoomController 支持设置房主 (a269845)
  • super 包新增 RecoverTransform 函数,用于将 recover() 结果转化为 error (7efe88a)
  • super 包新增 StopWatch 和 StopWatchAndPrintln 函数,用于追踪函数运行时间 (7fa0e68)
  • super 包新增 TryReadChannel、TryReadChannelByHandler 函数用于对 channel 尝试写入 (959abff)
  • super 包新增 TryWriteChannel 函数,支持尝试性的对 channel 进行写入 (5b53e8a)
  • super 包新增 TryWriteChannelByHandler 函数,支持尝试写入 channel,如果 channel 无法写入则执行 handler (efbde3e)
  • super 包新增 WaitGroup 结构,用法同 sync.WaitGroup,包含一个额外的 Exec 函数,用于便捷的执行异步函数。移除 stack.go 相关的无用代码 (c98d15b)
  • timer 包新增 GetCurrWeekDate 和 GetLastWeekDate 函数 (ad4777a)
  • times 包新增 GetWeekdayDateRelativeToNowWithOffset 及 GetWeekdayTimeRelativeToNowWithOffset 函数,用于取代 GetCurrWeekDate 和 GetLastWeekDate 函数 (92d6c56)
  • transport: implement kcp core functionality (b47311b)
  • vivid: add cluster support and refactor actor system (7d6abf8)
  • vivid: add stop on parent restart feature for actors (bfed382)
  • vivid: add typed actor support and improve ask pattern (4d12837)
  • 优化 log 包,支持动态修改日志级别 (3e41068)
  • 优化项目文档 (7001e3d)
  • 修复 HTTP 服务器慢消息空指针问题 (31c68e4)
  • 修复 HTTP 服务器满消息空指针问题 (68bc005)
  • 完善 stream 包对于 []string 的操作 (a2695f4)
  • 支持向 server.Server 绑定一些数据 (acc4684)
  • 新增 charproc 包处理字符、文本操作 (f0f5f8a)
  • 新增 chrono 包,用于替代原本的 timer 及 times 包 (e608e92)
  • 新增 mask 包,增加 DynamicMask 高性能可变长度掩码实现 (0878d1a)
  • 新增 modular 包,用于实现模块化项目 (c95b206)
  • 新增 utils/sher 包,包含了对 slice 及 hash 常用的操作函数。用于未来对 utils/slice 和 utils/hash 包进行替换 (515cbc6)
  • 新版 server 包 HTTP 基础实现 (b2c0bb0)
  • 新版 server 包 HTTP 基础实现 (37f35aa)
  • 新版 server 包 websocket 基础实现、actor 模型实现 (92c4280)
  • 新版 server 包 websocket 基础实现、actor 模型实现 (ef1bb32)

Bug Fixes

  • lockstep 定时器导致空指针问题处理 (ceffa2e)
  • readme: 更新 go get 命令以引用最新 release 版本 (3012317)
  • 修复 dispatcher.Dispatcher 在消息归零的时候使用协程运行处理函数可能导致不可知问题的情况,修复消息消费时获取生产者可能已经被释放的问题。修复在无消息时候设置消息完成处理函数不会触发一次的问题 (7528dc4)
  • 修复 geometry 包 SimpleCircle.Projection 函数不正确的问题。优化部分注释及添加部分函数 (f7c3701)
  • 修复 room_options.go 中空指针检查方式错误的问题 (556d1cd)
  • 修复 server 中分流定时消息无法命中分流渠道的问题 (de43f53)
  • 修复 server 使用 WebSocket 模式下,路由不支持 :1234/ws 的格式问题 (f8e368a)
  • 修复 server 包 None 网络类型启动阻塞的问题。增加传入不支持网络类型将导致 panic 的特性。优化 WebSocket 服务器将不再使用 http.DefaultMuxServer,转而使用 http.NewServeMux (1645ae4)
  • 修复 server 包 WebSocket 路由兼容性问题 (590d0a1)
  • 修复 server 包异步分流消息的回调函数在取消分流渠道绑定后会在系统分流渠道执行的问题 (e760ef2)
  • 修复 server 包死锁检测中 Message 读写的竞态问题 (b81f972)
  • 修复 server 包连接断开消息分发器阻塞的问题,优化等待消息时打印的日志频率 (af23744)
  • 修复 server 包部分问题,修复 log 包在 init 函数调用可能产生的空指针问题 (3402c83)
  • 修复 server.hub 广播时未解锁的问题,优化处理逻辑 (80f38ff)
  • 修复 server.LoadData 函数签名的错误 (e585e12)
  • 修复 server.Service 初始化的 for 循环指针问题 (b633f1a)
  • 修复 server.WithDispatcherBufferSize 过小的情况下,在消息中发布新消息导致永久阻塞的问题 (b39625c)
  • 修复 space.RoomManager.AssumeControl 函数编译错误的问题 (3f099e6)
  • 修复 super 包 JSON 解析部分零值不正确的问题 (36de593)
  • 修复 timer.Ticker 并发问题 (d1d5bd4)
  • 修复 timer.Ticker 死锁 (612c41f)
  • 修复 times.GetCurrWeekDate 和 times.GetLastWeekDate 在 week 参数与今日 week 相同的情况下,会多获取到一周的问题 (902dada)
  • 修复循环依赖问题 (6d8258b)
  • 修复配置导出 go 代码文件时,引用包错误的问题 (790e317)
  • 修改 ShowServersInfo 函数可见性,修复服务器地址打印的指针问题 (26aa2d9)
  • 移除 modular 包的自动注入,优化 modular.Service 接口说明 (d531939)
  • 移除 modular.go 中不必要的代码,修复 timer.Ticker 释放后 handler 指针污染的问题 (17cdad2)

Performance Improvements

  • client 包由无界缓冲区调整为基于 chan 实现的缓冲区,新增 RunByBufferSize 函数支持以指定缓冲区大小运行 (bdbcc1b)
  • 优化 server.Server 连接管理机制,优化 GetOnlineCount、GetOnlineBotCount 性能 (5e5fe8a)
  • 去除 buffer.Unbounded 不必要的构造函数和 nil 字段 (7111350)
  • 更改 server 和 conn 的消息实现为 channel (d27fa7c)

Miscellaneous Chores

Code Refactoring

  • chrono: update scheduler and task management logic (4732b99)
  • minotaur: simplify actor typing and improve network handling (d542b36)
  • vivid: optimize actor reference handling and mod status management (1220b60)
  • vivid: optimize message dispatching for instant delivery (cf23e79)