这是一个Lua扩展库,提供了一些常用的扩展功能,该库还在不断完善中。。。
已提供的模块有:
- oset有序集合:基于skiplist实现
- list对象:一个Lua数组的实现。
- queue对象:提供比table更快的入队和出队操作。
- bitarray对象:位图数组的实现
- LruCache对象:基于循环链表的Lru Cache实现。
- weightrand模块:一个极速的基于权重的随机选择算法
- MHTimer对象:一个基于最小堆的定时器实现
- rand对象:基于xoshiro256**的伪随机数生成器(PRNG)
- seri模块:参考自云风的序列化库,代码重写编写,格式上有一点微小的变化。
- str模块:一些常用的字符串操作函数,参考了Python的字符串接口。
- filesys模块:常用的文件和目录接口
- dbg模块:扩展的traceback函数;打印Lua对象为字符串形式;高精度时钟等
- rtl模块:提供基础的面向对象实现。
- json解析器:加载和保存json文本,可以格式化,支持注释
- 。。。
先安装xmake;然后在根目录下执行:
xmake
如果提示找不到lua.h文件,则需要配置lua的头文件路径,在Windows下:
xmake f --includedirs=<luaincdir> --linkdirs=<lualibdir> --links=<lualib>
# <luaincdir> 替换为Lua代码文件所在的路径,比如:e:\lua\lua-5.4.2\src
# <lualibdir> 替换为编译出来的Lua库文件所在的路径,比如:e:\lua\lua-5.4.2\build\windows\x64\release
# <lualib> 替换为Lua库文件,比如:lua;实际上找的是lua.lib
在其他系统下:
xmake f --includedirs=<luaincdir>
# <luaincdir> 替换为Lua代码文件所在的路径,比如/home/colin/lua-5.4.2/src
上面命令只需要执行一次,以后就不用再执行。接下来仍然执行xmake
来编译工程,看看能否成功。
make只支持在非Window系统下编译,同样在根目录下执行(在freebsd下用gmake代替make):
make
如果提示找不到lua.h文件,同样需要指定Lua的头文件路径:
make "INC=-I<luaincdir>"
# <luaincdir> 替换为Lua代码文件所在的路径,比如/home/colin/lua-5.4.2/src
如无意外应该可以编译成功,最后生成colibc.so在colib子目录中。
根目录下有一个lua-xmake.lua
文件,将其拷贝到Lua目录下,比如/home/colin/lua-5.4.2
,然后改名为xmake.lua
。
接着执行:
xmake
如果成功会在build\windows\x64\release
生成下面文件:
lua-static.lib # 静态库
lua.exe # 执行程序
lua.dll # 动态库
luac.exe # 编译程序
lua.lib # 导入库
- apis.lua 和其他lua文件都有详尽的接口说明,建议使用 IDEA + EmmyLua 插件,以获得方便的代码提示。
- test 目录中是各模块的测试代码,查看这些代码可以了解各模块的使用方法。进入test, 然后执行
lua test_xxx
。 - 由于本人的精力有限,该库只支持 Lua5.3 以上的版本。
该库只在下面的系统编译通过,其他系统不能保证可以编译
- Windows 10
- macOS Big Sur 11.2.3
- Debian GNU/Linux 10 (buster)
- Ubuntu 20.04.1 LTS
- FreeBSD 12
- CentOS 8