/khala

khala介绍

Primary LanguageC++BSD 2-Clause "Simplified" LicenseBSD-2-Clause

# khala
  Khala(卡拉)是用C++实现的TCP网络框架。底层采用muduo网络库作为网络IO+线程模型,并封装实现了网络实现与业务逻辑分离的多线程网络框架,具有超时退出、多设备多事件注册支持、设备生命周期管理、设备间通信等功能。
  
相关介绍请关注:
http://www.cnblogs.com/moyangvip/p/5049673.html

邮箱:
moyangvip@163.com


一、安装:

1、从github库下载源码https://github.com/moyangvip/khala

2、Khala采用CMake为build system,安装方法:
 $sudo apt-get install cmake

3、Khala依赖于Boost,Boost安装方式:
 $ sudo apt-get install libboost-dev libboost-test-dev

4、Khala同时依赖于muduo(https://github.com/chenshuo/muduo)
和json(jsoncpp-src-0.5.0),在khala/Khala/libs/目录中已经包含其静态库。

5、编译安装方法:
在Khala根目录输入:
 $ ./build.sh
  此时将以默认的Debug模式("-O0")编译khala库和它自带的例子,生成的静态库文件(libKhala.a)位于./build/Debug/libs/目录,生成的例子的可执行文件位于./build/Debug/bin/目录。

如果要编译release版,则可以输入:
  $ BUILD_TYPE=release ./build.sh
  此时将以Release模式("-O2 -finline-limit=1000 -DNDEBUG") 编译khala库和它自带的例子,生成的静态库文件(libKhala.a)位于./build/release/libs/目录,生成的例子的可执行文件位于./build/release/bin/目录。

如果只想编译khala库,而不编译例子,则输入:
  $ BUILD_NO_EXAMPLES=1 ./build.sh
  此时将只编译khala库,生成的静态库文件(libKhala.a)位于./build/Debug/lib/目录。


二、目录结构:

1、Khala的目录结构如下:

khala
|-- License
|-- README
|-- build.sh (安装脚本)
|
|-- Khala (khala框架的主体)
| |-- include (编译khala依赖的头文件:khala本身头文件和muduo、json的头文件)
| |-- src (代码实现)
| |-- libs (依赖的静态库muduo和json)
|
|-- examples 
| |-- HelloKhala (khala的示例)
| | |-- src (示例代码)
| |
| |-- testClient (客户端测试示例)


2、通过./build.sh编译安装后,生成的build目录结构如下:

build
|-- {Debug or Release }
| | -- bin (生成的可执行文件)
| | -- libs (生成的Khala静态库,以及muduo和json的静态库)
| | -- include (静态库的头文件)


三、使用
  在新建的项目中如果希望使用khala库,只需要执行build.sh编译安装后,导入相应的头文件路径( ./build/{Debug or Release }/include/ ),和库文件路径( ./build/{Debug or Release }/libs/ ),并且链接相应的静态库文件 ( -lKhala -lmduo_net -lmuduo_base -ljson -lphread )即可。