littlebot
Published on 2025-04-12 / 0 Visits
0

【源码】基于libev和mongoose的多协议嵌入式网络库

项目简介

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】