目前 Paozhu C++ Web Framework 已经完成一个完整的 web 生态开发框架,内置 HTTP/1 HTTP/2 ORM
支持基于 ASIO 协程 ORM,目前全球第二款开源基于 ASIO 协程 MySQL Client
从上一个版本发布后经过一个月生产环境考验和bug修复,目前稳定性大大加强,每天可以抵抗大量采集机器人和黑客软件扫描。
作为新一代C++ WebServer 简洁、优雅开发深受C++开发者喜爱。
使用C++ 20协程可以并发上百万链接。
下面是ORM 一个数据库使用协程例子。
//@urlpath(null,updates)
asio::awaitable<std::string> techempowerupdates(std::shared_ptr<httppeer> peer)
{
peer->type("application/json; charset=UTF-8");
peer->set_header("Date", get_gmttime());
unsigned int get_num = peer->get["queries"].to_int();
if (get_num == 0)
{
get_num = 1;
}
else if (get_num > 500)
{
get_num = 500;
}
auto myworld = orm::World();
myworld.record.clear();
myworld.record.reserve(get_num);
for (unsigned int i = 0; i < get_num; i++)
{
myworld.wheresql.clear();
myworld.where("id", rand_range(1, 10000));
co_await myworld.async_fetch_append();
if (myworld.effect() > 0)
{
unsigned int j = myworld.record.size() - 1;
myworld.data.randomnumber= rand_range(1, 10000);
myworld.record[j].randomnumber = myworld.data.randomnumber;
co_await myworld.async_update("randomnumber");
}
}
peer->output = myworld.to_json();
co_return "";
}
修改记录
- 内置微型对象添加zip方法,合并两个微型对象。
- 内置微型对象添加multi_sort多维数组排序。
https://github.com/hggq/paozhu