SmithSNMP是SmartSNMP的一个fork。SmartSNMP由笔者当时所在的景略半导体(上海)团队开发,SmithSNMP是笔者现在出户后基于前者单独维护的项目,目前在feature上领先于前者。
解释一下为何另起炉灶。最近接到前东家通知,他们考虑在未来有可能将SmartSNMP注册为商标,而且由于笔者目前不再受聘于贵司,不便再向SmartSNMP上游仓库提交重大变更。
特此声明,笔者与前东家已经达成协议,双方一致同意今后笔者不再以SmartSNMP的名义推广该项目,一致同意笔者基于GPL发布新版本,即现在的SmithSNMP。
同时SmithSNMP和SmartSNMP之间不存在技术对立,SmithSNMP会密切关注上家仓库的动向,并适当同步代码,也不排除未来上家仓库合并SmithSNMP代码的可能性。只要基于GPL共识,我们会彼此尊重对方。
今后凡是称SmartSNMP,特指:https://github.com/credosemi/smartsnmp
今后凡是称SmithSNMP,特指:https://github.com/begeekmyfriend/smithsnmp,以及在git@osc上导入的仓库。
下面介绍一下SmithSNMP从上家继承的特性:
使用C99和Lua5.1写成。
支持用户使用Lua写私有mib,代码支持GPL例外,配置和开发极其简单。
支持SNMPv1/v2c/v3,兼容Net-SNMP(可以做sub-agent)。
可以运行在Linux、BSD以及OpenWRT系统,同时支持32位和64位。
核心模块编译为core.so可由Lua虚拟机动态加载,体积小,可嵌入其它模块。
自带丰富的MIB例子和单元测试。
以下是SmithSNMP单独开发的新特性:
移除对libevent以及libubox的依赖,使用自家写的事件驱动。
支持SNMPv2 trap,可自定义实现,兼容Net-SNMP的trapd。(注:此特性最初来自OSC用户反馈,是笔者开发SmithSNMP的原动力)
利用SNMPv3增强安全性,基于OpenSSL的MD5和SHA认证,AES对称加密。
二次开发中文文档:http://git.oschina.net/begeekmyfriend/smithsnmp/wikis/home