Releases: cfadmin-cn/cfadmin
v0.3正式版发布, 一套完善的lua Web开发框架.
本次更新内容:
new feature:
-
增加httpc的类封装, 用于socket复用场景、多接口并发请求支持;
-
新增3rd目录支持用户自动集成第三方库;
-
新增异步stdout日志打印方法, 定期刷新cache提升性能;
-
新增new_tab实现, 提升table创建效率, 减少rehash次数;
-
httpd支持原生静态文件路由查找, 自动过滤恶意path请求;
-
admin库新增一个语言切换标签显示方法, 适用于单语种后台开发模式;
-
crypt库新增sha256、hmac_sha256算法, 适用于某些第三方接口;
-
MQ新增stomp协议支持, 调整目录结构. 具体使用方法见MQ库API;
Code optimization
-
优化不同平台的连接管理效率;
-
优化TCP效率, 减少无用事件循环注册;
-
优化DNS解析流程效率, 构建清晰的流程解析结构;
-
优化Websocket实现, 解决一些特殊场景下的循环应用问题;
-
优化http协议解析为C实现, 优化http trunked解析流程;
-
优化Dockerfile构建流程, 提升50% build速度;
-
优化url.encode与url.decode, 使用Lua的C API编写性能提升30x;
-
优化ev_loop事件循环效率, 开启宏调优选项优化;
-
优化内置库执行效率, 将大范围全局变量引用为局部变量提升执行效率;
-
优化内存对象引用问题, 增加对象复用减少内存分配频率;
-
优化logging库, 自动根据日期分割日志文件;
-
其它一些代码优化;
Bugx fix:
-
修复xml2lua的字符串解析错误问题;
-
修复http的路由查找对静态文件的查找bug;
-
修复使用timeout在特殊情况下的错误问题;
-
修复MQ仅能注册单个订阅事件的问题;
-
修复mqtt的协议探测问题;
-
修复HTTP的一些特殊请求回应问题;
-
修复一些其它潜在的问题;
v0.3-RC2, admin功能增加与bug修复
更新一览:
-
bug fix:
-
修复websocket断开连接后导致的循环引用问题;
-
修复admin before在特殊情况下Token错误判断导致401的问题;
-
修复定时器的停止判断的问题;
-
修复DB与Cache的初始化判断问题;
-
修复httpc在特殊情况下导致的无法读取body问题;
-
修复cf在容器内无响应Ctrl+c、Ctrl+\退出的问题.
-
-
Code optimization:
-
优化ltcp与TCP代码, 优化ssl的connection判断;
-
优化websocket代码; 提高代码可读性;
-
优化httpc代码内部判断;
-
优化DB与Cache; 牺牲队列插入性能来均衡session使用频率;
-
更新容器版本到0.3-RC2;
-
-
new add :
-
新增admin 库view、httpctx, 用于快速编写后台页面与接口;
-
新增websocket client, 长连接使用更加简单;
-
新增keepalive与deffer_accept, 更加高效的连接管理;
-
新增了一些测试代码;
-
如何快速找到cf?
oschina/github首页搜索关键字"cfadmin"即可.
为什么能说极速开发与快速入门?
-
使用cf就能完成, 但你偏偏自己造轮子.
-
本不需要996, 只是选错了使用工具.
-
本应该在约会, 偏偏因为需求没完成.
感谢
感谢一些小伙伴的邮件issue, 但是更加推荐直接open issue让更多人来一起认识并完善cf;
v0.3-RC1 lua的admin后台模板释出, 赶快过来看看吧.
更新内容:
-
新增admin库, lua也能方便的写web后台管理系统了.
-
json调整, 默认允许解析稀疏数组解析.
-
httpd新增keepalived时间的头部, 用于适配客户端.
-
修复DB没有字符集配置导致的插入字符乱码的问题.
-
为crypt库增加crc32与crc64(测试)算法, 应用于一些特殊场景.
-
增加url encode与decode. 解决url传参编码的问题.
-
增加logging库方便debug. 序列化到磁盘logs文件夹,且会自动根据时间分割文件.
-
重新调整了路由查找与静态文件查找方法.
-
增加了httpd的cookie扩展与一些方法用于开启cookie解析, 用于admin库.
-
增加了docker各种搭建方式的示例与大批Wiki,方便大家快速入门.
关于测试
欢迎大家用于帮助测试admin库, 有问题尽早更正.
v0.2.1 发布 - lpeg你喜欢么? xml修复与优化!
0.2.1 更新:
-
为cf设计了一个漂亮的小logo;
-
修复xml2lua潜在的重入问题, 并且进行了文件路径调整与wiki说明. 优化xml2lua代码性能;
-
新增加了lpeg库;
-
对luaclib内相关的编译命令进行些微调整.
-
修复utils文件夹命名问题;
-
增加了text_xml示例;
特别说明:
-
版本划分为: x.y.z, x与y为大版本更替, z为功能性增加与bug修复.(以后不再特殊说明)
-
作者一个人时间维护大量代码、第三方库、wiki有点捉襟见肘, 所以对可能出现的问题先表示歉意.
-
如果对cf内置库或第三方库有自己的见解或者说明. 可以联系作者提交md文档直接记录到cf的Wiki上.
-
更新dockerhub到cf镜像.
-
为什么更新这么少? 最主要是为了有logo而发版.
v0.2-稳定版本发布
本次更新内容:
- 修复了一个小伙伴的编译问题 #1 ;
- 增加了大量可用API, 基于一些lua生态的现有库进行定制化封装;
- 继续完善cf的私有socket、dns、tcp、udp、ssl等底层封装库;
- 继续完善了http、redis、mysql、mqtt、smtp协议, 适应cf的reactor并发模型;
- 增加了System、cf等库, 暴露一些底层API方便使用者在特殊情况下使用;
- 分离了httpd的控制层(access)与业务层(handle), 方便大家编写低耦合的后端代码;
- 在Docker hub上增加了cf镜像, 同时增加docker文件夹与文件夹内的相关示例;
- MQ、Cache、DB封装库都增加了完善的断线重连机制, 保证相关操作不会丢失(除非cf进程退出).
- 增加了Wiki 页面, 更加方便的让使用者可以了解cf. 所有cf相关知识点与内容都在其中;
- 其它一些cf的性能优化工作.
bug fix与issues跟进
如果您能看到这里, 首先感谢您对cf的关注.
如有相关疑问: 可以参考Wiki或在issues上进行提问, 作者看到后将会尽快回答.
给自己一次不一样的选择
如果您还在使用其它的Lua web框架, 不如试一试cf的清爽.
如果您还在犹豫cf是否为一个好的选择, 不妨使用容器体验一下.
如果您还在为学习成本而担忧, 不如看一看Wiki页面到底有多全面.
如果您也想成为cf的开发者, 欢迎您与作者进行交流.
v0.2-RC3发布
修复日志:
- 增加cf命名空间, 暴露相关内置api;
- 增加system命名空间, 增加一些常用方法封装;
- 修复一些test文件过于古老的问题;
- 优化lualib目录结构, 更清晰对代码结构展示;
- 优化了http的相关代码;
- 增加docker-compose文件, 并且移植到docker目录下;
- 修复TCP的一个写入问题;
- 修复httpc的一个端口问题;
- redis二进制协议定制实现;
- 其它一些性能与API优化;
v0.2-RC2发布
对比0.2-RC1版本:
-
修复TCP Connect 实现不完备的问题;
-
完善MQ的实现, redis/mqtt的发布(emit)/订阅(on)支持;
-
修复http ws的日志打印问题;
0.2-RC1发布
对比0.1版本, 更新如下:
- #1 为ubuntu的编译命令做了调整;
- 增加了完善httpd的before函数支持;
- 增加OPTIONS与HEAD method的完整支持;
- 完善跨域的预请求流程(preflight request), 增加了max-age为86400;
- 增加了mail库, 方便使用者发送邮件请求;
- 增加了dockerfile并且上传至candymi/cfweb:latest镜像;
- 模块化http form解析到lualib,优化代码结构;
- 将Socket修改为dual-stack原生支持IPv4/IPv6;
- 修改dns支持IPv4与IPv6请求;
- 增加了更多的示例代码与wiki文档;
- 增加xml2lua库;
- 其它一些代码结构优化等等.
v0.1版本发布
cf v0.1版功能预览
1. 基于libev事件驱动库封装了TCP/UDP同步非阻塞网络驱动库;
2. 基于libev事件驱动库封装了Timer功能, 再也不用担心网络超时找不到问题了;
3. 基于openssl/libressl实现的ssl client支持, httpc需要代理的时代过去了;
4. 使用UDP实现了lua版的异步dns解析解析器, 我就是不喜欢同步dns解析!
5. 基于luamqtt实现了一套基于协程的(可自定义为同步执行)消息队列模型, 从此lua也能当消息队列消费者(worker)咯!
6. Cache 与 DB 是什么? 好像可以支持封装MySQL与Redis驱动哦! 我就准备写了一点点, 然后等你来贡献代码!
7. httpd 是啥? 我自己实现的http server哦!目前虽然不支持rest语法, 但是解析速度快到爆.
8. 你不相信http解析速度快到爆? 帅哥/美女, PicoHTTPParser了解一下! 亲测改makefile开启-msse4后解析速度再快1倍
9. 你说lua没有class? 我自己实现了简单的class来适应cf的基本class结构. 你只需要看懂那10来行class实现即可.
10. httpd不支持html模板?template.lua 就是我偷来的代码, 但是我绝不承认我是偷来的!
11. httpd支持静态文件读取! 磁盘读取速度慢的(4K以下小文件)小伙伴千万别使用, 相信CDN会是你的首选!
12. 支持Websocket!你说你不会用websocket? 去script内看看示例文件吧!
13. cf也有crypt哦!因为不想自己再实现一套加密库了, 所以去'借'了crypt库过来自己整合了一下文件!
14. 如果你觉得你的代码足够稳定后, 请使用./cfadmin -d来让他在后台跑吧!