cppweb 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
cppweb 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议 GPL
开发语言 Java C/C++ Python
操作系统 跨平台
软件类型 开源软件
所属分类 服务器软件HTTP服务器
开发厂商
地区 国产
提 交 者 寻根
适用人群 未知
收录时间 2020-09-07

软件简介

cppweb 是一个基于C++开发的 WEB 服务器,支持C/C++、Python、Java等多语言混合开发WEB应用。

功能说明

  1. 作者初衷是编写一个web框架支持C++开发cgi程序,于是cppweb诞生了。
  2. 作者希望cppweb是一个大一统的框架,即可用于传统服务端编程也可用于web编程,作者希望http协议能做的更多,框架包括以下两个核心服务:
    webserver:业务服务容器,通过配置也可升级为服务注册中心与定时任务调度中心。
    webrouter:接口路由网关服务,对外提供统一的流量入口,主要负责请求分发以及黑白名称配置。
    
  3. cppweb在读数据采用epoll网络模型,以任务队列的方式处理具体请求,回包也在任务队列中处理,理论上cppweb可支持单机10000个以上的并发连接。
  4. cppweb易拓展,作者开发Java、Python等模块,用于支持Java、Python等语言开发cgi程序,开发者可以直接使用C/C++、Java、Python等语言进行混合开发。
  5. cppweb追求小而巧,对于开源库是拿来即用,源码工程自带zlib、sqlite等源码代码,开发者无需另外下载,再此感谢zlib、sqlite等开源库的作者与开发团队。
  6. 我们对linux与windows下的文件系统、共享内存、信息量等系统接口进行统一的封装,保证一份代码可以再不同的系统中编译运行,您也可以用cppweb基础库进行其他方面的跨平台开发工作。
  7. 基于cppweb的微服务集群框架如下图所示,图中绿色部分包括服务注册中心与业务服务集群由webserver服务构成;图中红色部分包括外部接口网关与内部接口网关由webrouter接口路由网关服务构成。关于cppweb的更新内容可访问https://www.winfengtech.com/cppweb查看。

测试数据

  1. cppweb在普通PC机(4核8G)上至少可支持每秒10000笔请求。
  2. cppweb在1核1G的低配centos系统上至少支持每秒3000笔请求。
  3. 下图是cppweb自身的流量监控数据:

安装编译

下面我们以centos与ubuntu系统的安装编译为例,讲解如何编译运行cppweb开发框架,后续我们将补充windows系统下cppweb的安装说明文档。如果系统没有自带openssl开发客户端,需要自行进行安装,ubuntu下可以执行apt-get install libssl-dev命令进行安装。

  1. 执行以下命令下载源码
    git clone https://gitee.com/xungen/cppweb.git
    
  2. 进入源码目录执行source configure命令,为使环境变量在当前会话中生效必须使用source命令执行configure进行编译配置。命令输出结果如下:
    initialize configure
    ---------------------------------------------
    1.check openssl success
    2.check g++ compiler success
    3.check java compiler success
    4.create product directory success
    5.export environment variable success
    ---------------------------------------------
    >>> initialize build-essential success
    
  3. 在源码目录下执行make命令,正常情况3~5分钟完成编译。在windows系统中你可以用mingw编译器在git bash中进行编译。
  4. 执行webserver -init $SOURCE_HOME/webapp/etc命令初始化配置,命令执行成功后会在$SOURCE_HOME/webapp/etc目录下生成以下文件:
    sqlite.db:基础数据文件
    config.lua:启动配置文件
    dbconfig.lua:数据库配置文件
    mimeconfig.luaMIME类型映射文件
    
  5. 初始化完成后执行strsvr命令便可启动webserver服务。
  6. 用浏览器打开http://localhost:8888地址进入webserver管理中心,如果webserver不是部署在本机需要将地址中的localhost替换为webserver所在服务器的IP地址,登陆用户与初始密码都为system
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (1)

加载中
貌似不支持H5,要是支持就完美了
10/27 11:21
回复
举报
更多评论
发表于软件架构专区
10/31 17:03

cppweb 1.0.3 发布,基于 C++ 开发的 web 服务器

cppweb是一个基于C++开发的 WEB 服务器,支持C/C++、Python、Java等多语言混合开发WEB应用。 cppweb同时也是一个跨平台的微服务开发框架,通过两个核心组件webrouter与webserver提供微服务系统中的接口路由网关、服务注册中心、业务服务容器、定时任务调度中心以及接口文档平台等功能,cgi应用只是其中业务服务容器的部分...

2
12
发表于网络技术专区
10/18 21:06

cppweb 1.0.2 发布,基于 C++ 开发的 Web 服务器

cppweb是一个基于C++开发的 WEB 服务器,支持C/C++、Python、Java等多语言混合开发WEB应用。 cppweb同时也是一个跨平台的微服务开发框架,通过两个核心组件webrouter与webserver提供微服务系统中的接口路由网关、服务注册中心、业务服务容器、定时任务调度中心以及接口文档平台等功能,cgi应用只是其中业务服务容器的部分...

5
16
发表于AI & 大数据专区
09/11 20:58

基于 C++11 开发的高性能 web 服务器 cppweb 发布

功能说明 作者初衷是编写一个web框架支持C++开发cgi程序,于是cppweb诞生了。 作者希望cppweb是一个大一统的框架,即可用于传统服务端编程也可用于web编程,作者希望http协议能做的更多,框架包括以下两个核心服务: webserver:业务服务容器,通过配置也可升级为服务注册中心与定时任务调度中心。 webrouter:接口路...

5
17
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表于软件架构专区
09/12 18:35

windows下如何安装编译cppweb

windows下如何安装编译cppweb cppweb是一个跨平台的web开发框架,支持C/C++、Python、Java等语言混合开发,本文主要讲解在windows下如何安装编译cppweb,关于cppweb的更多介绍请访问: https://www.winfengtech....

0
0
发表于软件架构专区
09/15 21:25

cppweb实现代码即接口文档

服务接口文档平台 在cppweb框架中每个webserver业务服务都可以访问/app/workspace/pub/apidoc.htm页面来查看自身的接口文档,只要你在接口代码最后面添加如下代码,webserver就会帮你自动生成接口文档,完全做到代...

0
0
发表了博客
09/13 08:48

基于 C++11 开发的高性能 web 服务器 cppweb 发布

功能说明 作者初衷是编写一个web框架支持C++开发cgi程序,于是cppweb诞生了。 作者希望cppweb是一个大一统的框架,即可用于传统服务端编程也可用于web编程,作者希望http协议能做的更多,框架包括以下两个核心服务: webserver:业务服务容器,通过配置也可升级为服务注册中心与定时任务调度中心。 webrouter:接口路由网...

0
0
发表于软件架构专区
09/14 22:00

cppweb如何从零开始新建一个java应用

cppweb如何从零开始新建一个java应用 如果系统安装了java开发环境(需要设置JAVA_HOME环境变量),在初始化cppweb编译环境时会启用java编译选项。cppweb源码文件中有一个java工程示例,工程目录路径为$SOURCE_HOM...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
1 评论
25 收藏
分享
返回顶部
顶部