这一年多的时间里,我写了一个由众多构件组成的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,我用了四年多,到现在不知道怎么排版,无语。

今天早上这个链接显示出来了,删除原有百度链接。资源零分下载。


欢迎加入qq群189546765,请不要对qq群名称大惊小怪^_^。来者不拒。群共享中也有lisk。