这一年多的时间里,我写了一个由众多构件组成的lisk。
lisk分别由以下构件:
定时器 lisk_clock
词典 lisk_dict key-value(string-string类型,可读取配置文件)
hashtable lisk_hashtable
list lisk_list
log lisk_log
map lisk_map
多级hash lisk_mul_hash
网络库 lisk_network
string lisk_string
vector lisk_vector
目录结构是 lisk---./mk.sh
---mak
---inc
---src
---exam
基于linux,lisk全部用C语言实现,没用用到一句我讨厌的C++(虽然以前也使用了近四年多)。
本人编程环境是opensuse12.3,uname -a结果是 Linux linux-xv96 3.4.6-2.10-desktop #1 SMP PREEMPT Thu Jul 26 09:36:26 UTC 2012 (641c197) x86_64 x86_64 x86_64 GNU/Linux。
另外本人使用了工具ccache。编译代码是请保证安装了ccache。
测试过成中借助valgrind基本上排除了所有的内存泄露。
编译过程很简单,先执行chmod u+x ./mk.sh以保证mk.sh可执行,然后执行脚本./mk.sh即可。
mak目录放置了makefile的配置项,inc目录放置了lisk所有的头文件,src目录放置了所有的源文件,exam放置了所有的示例代码。
可以修改文件lisk/exam/makefile第24行以编译不同的示例程序。
基本上可以保证每个字母和每行代码都是个人实现,例外就是其中有一个lisk_rand,被本人用来测试,就是这个我也有修改。
其中有些代码你可能从网上没见过的,建议可以看看log、多级hash、hashtable和network,以及用hashtable实现的词典。
网络库lisk_network采用了event driven形式,还是单进程的,而且只实现了server(支持TCP和UDP)。
下一步主要是修改可能的bug并在network中添加client。在下一步考虑支持多进程或者多线程,个人倾向于多进程,这个又是近半年的工作量了,如果工作不多而空余时间多的话。
如果有人愿意阅读代码,我会逐渐写一些blog分别详细地介绍相关的构件。
虽然这一年多的时间里,为了写lisk,吾人已心神俱疲。但它还会持续进化中,以后我会删除一些冗余代码。
代码遵循GPL2.0协议,请尊重我的劳动成果。
我现在不会用github,暂时先存放到百度云盘中。
顺便吐槽下csdn。csdn的资源老是出问题,我把lisk上传到了它上面,但是现在也没给我显示出来下载链接,这个简直就是个无底洞,我以前上传的很多也显示不出来。还有它的blog,我用了四年多,到现在不知道怎么排版,无语。
今天早上这个链接显示出来了,删除原有百度链接。资源零分下载。
csdn下载链接:http://download.csdn.net/detail/menggucaoyuan/5289107 。
欢迎加入qq群189546765,请不要对qq群名称大惊小怪^_^。来者不拒。群共享中也有lisk。