前段时间有同学抱怨说 skynet 下提供的 lua 模块都没有名字空间,平坦的命名,容易和自己项目开发的模块命名冲突。虽然自己项目开发的模块可以单独给一个名字空间,但混杂在一起使用还是不美观。
我考虑了几天,决定在 skynet 1.1 版本中把大部分的模块都加上 skynet 前缀。
调整的模块有:
- cluster : skynet.cluster
- crypt : skynet.crypt
- datacenter : skynet.datacenter
- dns : skynet.dns
- memory : skynet.memory
- mongo :skynet.db.mongo
- redis : skynet.db.redis
- mysql : skynet.db.mysql
- multicast : skynet.multicast
- netpack : skynet.netpack
- profile : skynet.profile
- sharedata : skynet.sharedata
- sharemap : skynet.sharemap
- stm : skynet.stm
- snax : skynet.snax
- socket : skynet.socket
- socketchannel : skynet.socketchannel
- socketdriver : skynet.socketdriver
因为一些模块引用的外部库,所以没有改变:
md5 sproto bson
http 和 snax 原来就具备名字空间,所以暂时没有调整。
为了保持和 skynet 1.0 的兼容性,我在 lualib/compat10 下防止了这些被改名的模块的代理。为了兼容过去的项目,只需要把 lualib/compat10 添加到项目的 lua_path
中即可。