cf 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
cf 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
cf 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 BSD-3-Clause
开发语言 C/C++ Lua
操作系统 跨平台
软件类型 开源软件
所属分类 Web应用开发Web框架
开源组织
地区 国产
投 递 者 水果糖的小铺子
适用人群 未知
收录时间 2019-01-25

软件简介

cf是什么

    1.  重度Lua使用者喜欢的web开发框架;

    2. 极简主义hacker自定义web工具;

    3. 比tiny更tiny的高效web开发库;

如果你也喜欢lua

    如果你和我一样用过各种语言的各种开发框架, 你就慢慢变得越来越挑剔;

    如果你和我一样写维护过10000行以上的单class, 你就会开始变得极简主义;

    当你进行接口开发的时候, 是否考虑过你的业务代码数量还比不上框架内置的代码5%?

    当你发现框架启动需要10秒, 刷新后得到结果需要5秒后. 电脑慢还不是问题么?

    其实这一切都是可以解决..

 

为什么选择它?

    1.   启动内存不超过1.5M的web service;

    2.  轻轻松松几千个lua协程, 随随意意几百cf实例, 性能与并发等你来测;

    3.  物联网都喜欢的mqtt协议(luamqtt), 支持同步与异步处理;

    4.  WebSocket支持, 写长连接变得非常简单;

    5.  超时器/循环定时器/sleep我都有, 就怕你不会用;

    6.  TCP同步非阻塞写法, 异步DNS内置; 

    7.  支持SSL client method, 安全tcp connect;

    8. 更多内容(骚话)请看这里

文档在哪?

    script/test_*.lua的代码就是最好的示例, 当然你也可以等我出文档

如何运行?

    参考readme!  cfadmin 默认会在script文件夹内寻找script/main.lua文件作为入口文件.

还有些什么?

    一个喜欢吹水的作者正在等待一群喜欢实力吹水的开发者加入进来.

作者联系方式:

    1. issues

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (0)

加载中
更多评论
2019/11/11 11:56

cf v0.6 发布 - 增加gzip支持与协议解析性能优化

cf v0.6 发布了,主要改进包括: feature httpc与httpd库增加的gzip头部支持, 用于优化网络与数据传输效率. httpd库增加注册中文(utf8)路由支持, 用于特殊一些场景. httpc库增加basic与jwt方法, 用于构造常用的头部. update 优化对底层库增加预分配机制, 提升效率与可读性. 优化大部分网络协议的解析效率, 提升解析效率. httpd库取消默认超时限制, 如果有需要可以自行调用相关接口增加. 更新了大部分cloud库内相关API, 有兴趣自...

1
2
2019/10/17 14:23

cf v0.5.2 发布,优化与细节完善

优化 优化编译脚本输出, 并且更容易排查编译错误. 优化一些错误的拼写, 便于出错时更容易阅读错误信息. 优化内置dns库的一些实现流程, 优化dns cache生成与查询速度. 优化一些测试代码, 完善测试流程与增加测试覆盖率. 新增 cfadmin可执行文件新增命令行-e参数, 可以用来指定入口文件. csv库新增writefile方法, 根据指定规则生成csv文件. cloud库新增paypal支付SDK实现与腾讯位置服务SDK. 新增快速上传文件示例, 具体查看scrip...

1
1
2019/09/10 06:54

cf v0.5 发布,admin 库的优化与漏洞修复

cf v0.5 发布了,更新内容如下: new feature 新增admin库的一些特殊处理方法; 新增webhook库并集成了dingtalk机器人API相关接口与测试文件, 主要适用于国内一些特殊开发场景; 新增qrcode.js/echarts.js等库到static目录下, 可以自行决定是否保留(内部无依赖); 新增httpd库都内置MIME集, 适用于一些特殊场景; 新增跨平台的sendfile方法支持, 提升httpd库的静态资源发送效率; 新增httpc库的get/post方法对args/body强制转义. bug...

0
1
2019/08/23 07:22

cf v0.4.3发布,lua 5.4 支持与一些细节优化

优化 优化admin库的一些实现代码与SQL语句; 优化包括login、dashboard、user、role、menu、header、profile的一些布局与显示问题; 修复 修复crypt在使用频繁情况下的tohex性能问题; 修复导入数据后字段描述的comment乱码的问题; 修复在docker内运行mysql:8的连接问题(详情看yaml文件); 编译 现在提供了clean与build脚本用来简化编译难度, 脚本内部注释描述了如何使用与依赖库. lua 5.4的支持 框架根据lua5.4beta版本API提供了兼...

0
3
2019/08/05 11:01

cf v0.4.2 发布 — 增加FFI库并优化了Admin库

新增 集成精简后的FFI库, 为开发者提供更简单的数据结构编写. 新增preapre与execute语句, 更加完善的数据库交互方式. 优化 优化内置sys代码结构. 优化一些宏进行适配. 优化底层lua库代码. 修复 修复TCP的SSL连接异常的问题. 修复httpc的判断问题. 修复admin库在特殊情况下抛出异常的问题. 修复lfs向后与向前兼容的一些问题. 修复一些判断不完善的问题.

0
3
2019/07/24 20:50

cf v0.4.1 发布,优化代码并增加了一些内置库

更新 增加lfs库. 增加msgpack、protobuf库. 增加Lua5.4的一些兼容配置代码. 增加win版本使用cmake编译. 优化 优化TCP写入与读取实现, 优化lua层的读取速度 优化build.sh文件. 优化一部分C文件实现. 优化日志实现. 修复 修复特殊场景下的未初始化问题. 修复FreeBSD下的一些小问题. 修复makefile的一些警告. 修复win版本没有加入static目录的问题....

0
2
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
2014/03/23 03:33

CF

http://codeforces.com/problemset/problem/405/C #include <cstdio> #include <iostream> #include <vector> #include <algorithm> #include <bitset> using namespace std ; bitset < 1002 > a[1002]; int n; inline int Solve(){ int ret = 0; for(int i=1;i<=n;++i) ret += a[i][i]; return ret; } int main() { std::ios_base::sync_with_stdio(false); #ifndef ONLINE_J...

0
0
发表了博客
2018/10/21 15:24

cf

1 在网上发现两个插件,layer,懒人建站 没有插件,后来自己在网上查了方法,用jquery写的,但是感觉还是代码不足性很多,仅仅能够实现功能 用的是点击事件,当点击时改变div的样式,把原来的none改变block 代码如下 2 能实现与数据库的连接,但是都是写在一个ajax里面,所以感觉代码写的不好 前台接受数据库的信息,用的是拼写代码的形式, 要实现这些数据点击时可以修改,那个点击外必须 是span标签才可以,我试了一下其他发现...

0
0
2018/09/12 17:44

cf 网页

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <style type="text/css"> body{ background-image:url("images/bg-index.jpg"); background-position: top center; } /*网站的顶部导航栏 */ .bdg{ background-image:url("images/bg-index.jpg"); } body,div{ margin:0px; padding:0px; } /* 顶部导航-块元素 */ .top{ width:1180px; height:124px; background-image: url("../images/...

0
0
发表了博客
2018/07/05 10:54

CF 987

毒瘤啊啊啊啊啊 虽然排名还不错,331,但是B我没做出来...... 这是战绩: 可以看到我大发神威势如破竹的A了CDE,但是B把我卡了三次...不然我就能进前300了(还是很水)。 逐一分析题目: A不多说了,随便开个map完事。 B...比较 x ^ y 和 y ^ x 的大小。 数据范围 [1, 10 ^ 9] 思考之后发现可以取对数。 然后连WA三次,精度分别是1e-10,1e-12,1e-7 赛后发现精度1e-6就A了,WA的那个点是两个10000000000,我...... 拉到自己电脑上...

0
0
发表了博客
2013/08/28 23:27

CF安装

今天晚上搞了半天,进展缓慢。安装环境是Ubuntu-12.04,先安装并设置了go,可以参考上一篇文章。 1. NATS NATS的安装很简单,直接执行以下命令即可: $ gem install nats # or $ rake geminstall 由于Rubygems官方网站被Wall了,导致Ruby程序员在线安装软件gem包的时候无法顺利进行,所以最好修改成淘宝的源: $ gem sources --remove http://rubygems.org/ $ gem sources -a http://ruby.taobao.org/ $ gem sources -...

0
0
发表了博客
2018/07/08 17:32

CF 681

我太水了...... 这是一场奇差无比的CF。 A,看题意有困难,实际上还是很水的。 B,枚举 1234567 和 123456 的个数,时间复杂度1e6以下 C,业界毒瘤模拟题。最TM坑的是还要输出操作数...不能在线输出。 首先,我一个数组名写错了,结果搞了至少10min才调出来,可能有20min。 然后我空间开小了... 然后我没有判断队列是否非空就取队首... 最后我一个大于号小于号写错了... 最后终于A了,还有26min。 弃疗。 D,给你一些人,构成一...

0
0
发表了博客
2015/02/25 08:21

cf 484A

#include<iostream>#include<cstdio>#include<string>#include<string.h>#include<cstring>#include<algorithm>using namespace std;int cal(long long d){   int len = 0;   while(d){     d >>= 1;     ++len;   }   return len;}int main(){   int n;   scanf("%d", &n);         long long l, r;   for(int i = 0; i < n; ++i){     scanf("%I64d%I64d", &l, &r);     int rlen = cal(r), llen = ...

0
0
发表了博客
2019/02/02 16:20

cf 938E

哇自闭了。 一样个毛啊。 和之前见过的几道感觉很类似啊。 首先一个数如果有贡献那么在他后面一定有一个大于它的数,并且前面的全比他小,然后我就跑偏了。。。 于是我们先排个序,显然无影响,我们可以考虑从 n 个位置里选择 n-i+1 个,用来存放 大于等于他自己的数, 这n-i+1个位置要保证 他自己在最前面吧,就是 (n-i)! 种,剩下i-1个位置随便放,(i-1)! 所以一个数的贡献次数 就是 C(n,n-i+1)*(i-1)!*(n-i)!,然后再乘上权值...

0
0
发表了博客
2019/04/04 14:29

cf 744D

给你红点蓝点,找一个最大的圆,圆里没有蓝点并且至少有一个红点。边界可算可不算。 一开始没看懂题解,想了好久(一整天)才想明白是枚举弦上点二分半径check角度,看了下clj的代码发现思路都一样就开始写了。 借鉴了一下clj的代码。 调了一个多小时。 几个注意点:看到好多 random_shuffle 的,我没有,也感觉没什么必要。(另外cjl的代码去掉random_shuffle好像会WA。。。) 极角排序之后可能会遇到很多很多点全在一个角上,这个...

0
0
发表了博客
2020/07/26 10:43

cf 1379A

题目 https://codeforces.ml/contest/1379 晚安 代码 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<cctype> #include<ctime> #include<iostream> #include<string> #include<map> #include<queue> #include<stack> #include<set> #include<vector> #include<iomanip> #include<list> #include<bitset> #include<sstream> #include<fstream> #include<complex> #include<algorithm> #if __c...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
2019/10/20 17:16

python post请求转换成java,格式问题

python 代码: def createPost(): timestamp='1571560731491' hash='b6ea03cf028fd0b3fe6a79acb' url = 'http://api.mot.q/api/v2/task' data={} d={'taskType':'distribute', 'name':'content-brain', 'timestamp':timestamp, 'hash':hash, } jsdata={ 'files':'http://storage/content-brain/Jellyfish.jpg', 'fileArea':'2', 'httpBackurl':'http://10.11.182.216:8080/ctt-web/api/v1/main/callback/extpic' } d['data']=js...

2
0
发表于大前端专区
2019/08/18 21:29

qq图片缓存代码,麻烦大神算下q号(有偿)

谢谢各位大神 感激不尽 871122888 1.6A3CF12F2ED09F28440A41732BF8D92B 2.F8672CABA5899ED324A43380D9D55B95 3.12A7E5A1B6B5F396D40BBF1082AD95C2

5
0
发表于软件架构专区
2019/01/29 10:09

linux系统postfix-master.cf这个文件被误删,能从别的服务器拷一个直接用吗?

linux系统postfix-master.cf这个文件被误删,能从别的服务器拷一个直接用吗? 或者有其他的办法?

1
0
发表于软件架构专区
2019/01/28 15:19

linux系统postfix文件夹里的main.cf删除后又重新上传,postfix服务就不能启动和重启了,提示失败

linux系统postfix文件夹里的main.cf删除后又重新上传,postfix服务就不能启动和重启了,提示失败

1
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
0 评论
19 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部