Skip to content

Releases: cfadmin-cn/cfadmin

v0.3正式版发布, 一套完善的lua Web开发框架.

13 Jun 20:52
Compare
Choose a tag to compare

本次更新内容:

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修复

28 May 02:37
Compare
Choose a tag to compare
Pre-release

更新一览:

  • 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"即可.

为什么能说极速开发与快速入门?

  1. 使用cf就能完成, 但你偏偏自己造轮子.

  2. 本不需要996, 只是选错了使用工具.

  3. 本应该在约会, 偏偏因为需求没完成.

感谢

感谢一些小伙伴的邮件issue, 但是更加推荐直接open issue让更多人来一起认识并完善cf;

v0.3-RC1 lua的admin后台模板释出, 赶快过来看看吧.

23 May 10:38
Compare
Choose a tag to compare

更新内容:

  • 新增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修复与优化!

25 Apr 00:28
Compare
Choose a tag to compare

0.2.1 更新:

  • 为cf设计了一个漂亮的小logo;

  • 修复xml2lua潜在的重入问题, 并且进行了文件路径调整与wiki说明. 优化xml2lua代码性能;

  • 新增加了lpeg库;

  • 对luaclib内相关的编译命令进行些微调整.

  • 修复utils文件夹命名问题;

  • 增加了text_xml示例;

特别说明:

  1. 版本划分为: x.y.z, x与y为大版本更替, z为功能性增加与bug修复.(以后不再特殊说明)

  2. 作者一个人时间维护大量代码、第三方库、wiki有点捉襟见肘, 所以对可能出现的问题先表示歉意.

  3. 如果对cf内置库或第三方库有自己的见解或者说明. 可以联系作者提交md文档直接记录到cf的Wiki上.

  4. 更新dockerhub到cf镜像.

  5. 为什么更新这么少? 最主要是为了有logo而发版.

v0.2-稳定版本发布

14 Apr 18:01
Compare
Choose a tag to compare

本次更新内容:

  • 修复了一个小伙伴的编译问题 #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发布

12 Apr 07:21
Compare
Choose a tag to compare
v0.2-RC3发布 Pre-release
Pre-release

修复日志:

  • 增加cf命名空间, 暴露相关内置api;
  • 增加system命名空间, 增加一些常用方法封装;
  • 修复一些test文件过于古老的问题;
  • 优化lualib目录结构, 更清晰对代码结构展示;
  • 优化了http的相关代码;
  • 增加docker-compose文件, 并且移植到docker目录下;
  • 修复TCP的一个写入问题;
  • 修复httpc的一个端口问题;
  • redis二进制协议定制实现;
  • 其它一些性能与API优化;

v0.2-RC2发布

04 Apr 09:40
Compare
Choose a tag to compare
v0.2-RC2发布 Pre-release
Pre-release

对比0.2-RC1版本:

  1. 修复TCP Connect 实现不完备的问题;

  2. 完善MQ的实现, redis/mqtt的发布(emit)/订阅(on)支持;

  3. 修复http ws的日志打印问题;

0.2-RC1发布

03 Apr 07:25
Compare
Choose a tag to compare
0.2-RC1发布 Pre-release
Pre-release

对比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版本发布

25 Jan 07:06
Compare
Choose a tag to compare
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来让他在后台跑吧!