项目简介
Evmongoose是一个异步的、基于事件框架(libev)的集成多种协议的嵌入式网络库。它基于mongoose和libev实现,并且支持Lua API。该库支持高度的可定制化,能帮助开发者扩展应用程序,解决了传统HTTP服务器库难以添加自定义对象的问题。
项目的主要特性和功能
新特性
- 使用libev编程实现异步事件处理,提升程序响应速度与效率。
- 支持高度可定制化,可基于libev扩展应用程序。
- 提供Lua API,除对evmongoose的Lua封装外,还包含常用的posix C API。
继承自mongoose的特性
- 支持多种网络协议,如TCP、UDP、SSL/TLS(单向或双向)。
- SSL库可选择OpenSSL或mbedtls。
- 具备HTTP客户端和服务器功能,支持HTTP文件上传与代理。
- 提供WebSocket客户端和服务器、MQTT客户端和代理、CoAP客户端和服务器。
- 支持DNS客户端、服务器及异步DNS解析,还有Url重写功能。
安装使用步骤
Ubuntu系统
安装依赖库
bash
sudo apt install libev-dev libssl-dev lua5.1 liblua5.1-0-dev lua-zlib
cd lua-ev
cmake . -DINSTALL_CMOD=$(lua -e "for k in string.gmatch(package.cpath .. \";\", \"([^;]+)/..so;\") do if k:sub(1,1) == \"/\" then print(k) break end end")
make && sudo make install
安装Evmongoose(默认支持HTTPS)
bash
cd evmongoose
mkdir build
cd build
cmake ../
make && sudo make install
安装Evmongoose(禁止HTTPS)
bash
cd evmongoose
mkdir build
cd build
cmake ../ -DHTTPS_SUPPORT=OFF
make && sudo make install
OpenWRT/LEDE系统
bash
cp -r lua-ev-openwrt openwrt_dir/package/lua-ev
cp -r evmongoose/openwrt openwrt_dir/package/evmongoose
cd openwrt_dir
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
make package/evmongoose/compile V=s
通用嵌入式环境
交叉编译Lua
交叉编译lib-ev
bash
cd libev/src
sh ./autogen.sh
export PATH=/home/zjh/lede/staging_dir/toolchain-mipsel_24kc_gcc-5.4.0_musl/bin:$PATH
./configure --host=mipsel-openwrt-linux --prefix=`pwd`/obj
make && make install
交叉编译Lua-ev
bash
cd lua-ev
export PATH=/home/zjh/lede/staging_dir/toolchain-mipsel_24kc_gcc-5.4.0_musl/bin:$PATH
cmake . -DCMAKE_C_COMPILER=mipsel-openwrt-linux-gcc -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=BOTH -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH=xxxxx
make
交叉编译evmongoose
bash
cd evmongoose
export PATH=/home/zjh/lede/staging_dir/toolchain-mipsel_24kc_gcc-5.4.0_musl/bin:$PATH
cmake . -DCMAKE_C_COMPILER=mipsel-openwrt-linux-gcc -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=BOTH -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH=xxxxx
make
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】