core_framework 0.4 发布,提供 windows 平台支持

水果糖的小铺子
 水果糖的小铺子
发布于 2019年07月15日
收藏 4

更新日志

  • 修复httpctimeout字段错误的问题.

  • 修复getsockoptwindows平台的莫名其妙段错误.

  • 修复了MacOSX默认不使用kqueue的问题.

  • 优化now函数的实现方法, 使用更加简单的函数实现.

  • 优化了core.c对各种后端选择的优先级判断.

  • 优化一大部分 C 代码, 更加清晰的代码流程管理.

  • 优化 crypt 库代码, 增加 md5、hmac_md5、sha512、hmac_512 等算法.

增加支持平台

分离出一个 win32 的分支仅用于支持windows系统原生进行开发与调试, 编译代码支持 windows 7 或更高版本.

cf 介绍:

cf 全称为: CoreFramework. 一个基于 Reactor 事件驱动与协程的 Lua 高性能网络框架, 目前主要面向 HTTP Application 开发.

cf 内部主要实现了包括 HTTP 与 HTTP Over Websoket 协议的 Server, 利用轻量级协程可以很轻松保持成千上万的长连接.

cf 内置了丰富的开发库与常见的第三方协议, 目前在快速开发业务原型上有不可比拟的优势.

cf 的 C 代码与lua封装的框架内部实现源码仅几千行,同时在源码包含了一系列中文注释方便大家阅读与code review.

优点:

  • cf 实现了高性内的异步协程、定时器等库, 简化异步代码编写难度;

  • cf 底层实现了自己的 lua 版的 Socket(TCP与UDP), 支持 IPv4 与 IPv6 性能更高并且速度更快;

  • cf 为 socket 添加了 ssl 支持(openssl/libressl), 在使用 https 等协议时不依赖第三方进行代理请求;

  • cf 实现了 lua 版的非阻塞 DNS 解析与缓存, 解决了 libev 没有内置 dns 库的问题并优化缓存读取提升解析速度;

  • http 协议基于目前业界最快的 picohttp 解析器, 手动开启 -msse4 后速度更快;

  • httpd 库支持自动判断、多 file 上传、multi-part/form-data 多参数上传;

  • 实现了非常实用的 httpc 库, 非常方便请求第三方接口进行数据交互(支持自定义 header); 并且支持多个请求并发执行, 同域名、端口链接复用减少 http 每次请求带来的连接消耗以此提升性能;

  • 实现了 Websocket 协议支持(RFC6455), 内置在 httpd 库内部;

  • 内置 redis/mqtt/stomp 协议并实现了订阅/发布 MQ 库使用更加简单、高效;

  • 包含了第三方数据交换格式解析库(json/xml)等;

  • 集成了 admin 库并且内置 lua template 模板语法,

  • 封装 Cache 与 DB 库, 提供断线重连、连接池等基础设施;

  • 实现了 SMTP 协议的, 支持发送 text/html 邮件;

  • 提供了 crypt 库, 并且内置了常见的加密与编码方式;

  • 提供了一份较为详细的基准测试数据用来打消您的顾虑;

  • 其它...

使用场景:

cf 目前支持多种多样的使用场景:

  • 基于容器技术的微服务场景(Swarm/Kubernetes); —— 推荐

  • 游戏服务器的前端代理层; —— 推荐

  • 内存/CPU 资源较为紧缺的云服务器; —— 推荐

  • 对性能要求较高的无状态集群; —— 推荐

  • 海量长连接(Websocket)Agent 集群; —— 推荐

  • 其它...

你不仅可以在短时间内(time < 0.1s)就能启动一个制作好的 docker 镜像, 也可以在集群内部轻易地扩展多个部署副本. 如果你的内存与 CPU 资源都非常紧张! 那么不妨考虑在不影响业务的情况下使用 cf 进行开发, 也许它可以有效帮助你减少一些成本。

其它

项目地址

安装方式

性能报告

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:core_framework 0.4 发布,提供 windows 平台支持
加载中
返回顶部
顶部