当前位置: 首页 > 软件库 > Web应用开发 > Web框架 >

Drogon

跨平台 Http 应用框架
授权协议 MIT
开发语言 C/C++
所属分类 Web应用开发、 Web框架
软件类型 开源软件
地区 不详
投 递 者 丁鸿云
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

**Drogon**是一个基于C++14/17的 Http 应用框架,使用 Drogon 可以方便的使用 C++ 构建各种类型的 Web 应用服务端程序。

本版本库是github上[Drogon工程](https://github.com/an-tao/drogon)的镜像库。**Drogon**是作者非常喜欢的美剧《权力的游戏》中的一条龙的名字(汉译作卓耿),和龙有关但并不是dragon的误写,为了不至于引起不必要的误会这里说明一下。

Drogon是一个跨平台框架,它支持Linux,也支持macOS、FreeBSD,OpenBSD,HaikuOS,和Windows。

它的主要特点如下:

  • * 网络层使用基于epoll(macOS/FreeBSD下是kqueue)的非阻塞IO框架,提供高并发、高性能的网络IO。详细请见[TFB Tests Results]
  • * 全异步编程模式;
  • * 支持Http1.0/1.1(server端和client端);
  • * 基于template实现了简单的反射机制,使主程序框架、控制器(controller)和视图(view)完全解耦;
  • * 支持cookies和内建的session;
  • * 支持后端渲染,把控制器生成的数据交给视图生成Html页面,视图由CSP模板文件描述,通过CSP标签把C++代码嵌入到Html页面,由drogon的命令行工具在编译阶段自动生成C++代码并编译;
  • * 支持运行期的视图页面动态加载(动态编译和加载so文件);
  • * 非常方便灵活的路径(path)到控制器处理函数(handler)的映射方案;
  • * 支持过滤器(filter)链,方便在控制器之前执行统一的逻辑(如登录验证、Http Method约束验证等);
  • * 支持https(基于OpenSSL实现);
  • * 支持websocket(server端和client端);
  • * 支持Json格式请求和应答, 对Restful API应用开发非常友好;
  • * 支持文件下载和上传,支持sendfile系统调用;
  • * 支持gzip/brotli压缩传输;
  • * 支持pipelining;
  • * 提供一个轻量的命令行工具drogon_ctl,帮助简化各种类的创建和视图代码的生成过程;
  • * 基于非阻塞IO实现的异步数据库读写,目前支持PostgreSQL和MySQL(MariaDB)数据库;
  • * 基于线程池实现sqlite3数据库的异步读写,提供与上文数据库相同的接口;
  • * 支持 Redis 异步读写;
  • * 支持ARM架构;
  • * 方便的轻量级ORM实现,支持常规的对象到数据库的双向映射操作;
  • * 支持插件,可通过配置文件在加载期动态拆装;
  • * 支持内建插入点的AOP
  • * 支持C++协程

 

  • 2020年8月31日16:39:03 c++高性能web框架drogon入门教程一 linux环境搭建和demo运行 c++高性能web框架drogon入门教程二 windows10下安装drogon,配合vscoede搭建开发环境 c++高性能web框架drogon入门教程三 控制器和数据库客户端使用 c++高性能web框架drogon入门教程四 orm使用,csp使用 c++高性能web框架d

  • 在windows下编译drogon,主要是解决依赖库的问题,又分为两个方面: cmake查找依赖库 编译过程中运行部分命令需要依赖库 cmake查找依赖库 在Windows下,库通常不会安装在默认目录(C:/Program Files/xxx)下,要想cmake找到这些依赖库需要做一些配置: zlib:对于zlib,需要设置ZLIB_ROOT环境变量,指向zlib的安装目录,而这环境变量需要cma

  • SIGINT信号,用于捕获CTRL+C终止程序。当进程收到该信号时,系统将调用该函数,并允许我们执行自定义逻辑。 但在Drogon开发使用过程中,使用signal注册了SIGINT信号,我在终端输入CTRL+C终止程序,系统并没有执行func()函数就直接退出了,百思不得其解。 static int func(int) { printf("Hello\n"); return 0; }

  • 2020年11月26日13:57:48 c++高性能web框架drogon入门教程一 linux环境搭建和demo运行 c++高性能web框架drogon入门教程二 windows10下安装drogon,配合vscoede搭建开发环境 c++高性能web框架drogon入门教程三 控制器和数据库客户端使用 c++高性能web框架drogon入门教程四 orm使用,csp使用 c++高性能web框架

  • 定义的control必须包含false class User : public drogon::HttpController<User,false> { public: User(const std::string &str){}; METHOD_LIST_BEGIN 用make_shared获取指针,把其传入registerControl auto ctrlPtr = std::make_sha

  • Drogon框架编译安装后,一个命令行程序drogon_ctl也同时被安装于系统,为了方便,还安装了一个完全一样的副本dg_ctl。用户可以按喜好自行选用。 该程序目前的主要功能是为了方便用户创建各种drogon工程文件,使用dg_ctl help命令可以看到它支持的功能,如下: dg_ctl help usage: drogon_ctl <command> [<args>] commands l

  • 一、libuuid源码下载 git clone https://git.code.sf.net/p/libuuid/code libuuid-code 二、解压源码后无makefile文件,需要通过makefile.am和configure.ac自己生成 下载三个包:autoconf-2.68.tar.bz2、automake-1.11.1.tar.bz2、m4-1.4.14.tar.bz2 1、

  • SIGINT信号,用于捕获CTRL+C终止程序。当进程收到该信号时,系统将调用该函数,并允许我们执行自定义逻辑。 但在Drogon开发使用过程中,使用signal注册了SIGINT信号,我在终端输入CTRL+C终止程序,系统并没有执行func()函数就直接退出了,百思不得其解。 static int func(int) { printf("Hello\n"); return 0; } int

  • Drogon是C++开发的后端服务框架,在看示例代码时,简短的语法一下是真的美,于是打算花点时间学习其中的实现细节。看到request解析到响应的业务处理部分,有个地方处理很是巧妙,跟Qt的信号槽机制神似。 请求到后端服务后,首先做HTTP的协议解析,然后根据URL获取访问路径及请求参数,查找匹配的业务处理接口,接口调用拿到响应结果返回给客户端。查找匹配业务接口的过程,库中是这样的处理: 定义了一

  • Drogon虽然是后端的框架,但也能实现网络客户端的相关功能。虽然在类名定义上有明确的Client的字样但对于其中设计思路一直没有梳理清楚,为什么一块完整的业务要拆成两部分?终于在看了几遍之后觉得找对了方向,故做个记录。 WebSocketClientImpl是WebSocketClient的接口实现类,由于websockect整个连接过程的发起端在客户端,所以该接口中做了TCPClient连接的

  • 下载vcpkg后编译,会在vcpkg根目录生成vcpkg.exe git clone https://github.com/Microsoft/vcpkg.git cd vcpkg bootstrap-vcpkg.bat vcpkg integrate install 安装drogon,注意,必须要带上[ctl],否则会找不到这个drogon_ctl工具 vcpkg.exe install dr

  • 如果你按照 https://github.com/drogonframework/drogon/wiki/CHN-02-%E5%AE%89%E8%A3%85或者其他博主的教程所给的步骤中的vcpkg方法进行安装。 已经成功安装vcpkg,并执行vcpkg install drogon完毕,将各种环境变量也成功进行了设置。 但在powershell中输入drogon_ctl命令提示无法解析, 同时,

 相关资料
  • 多平台支持 Mpx支持在多个小程序平台中进行增强,目前支持的小程序平台包括微信,支付宝,百度,qq和头条,不过自2.0版本后,Mpx支持了以微信增强语法为base的跨平台输出,实现了一套业务源码在多端输出运行的能力,大大提升了多小程序平台业务的开发效率,详情可以查看template增强特性 不同平台上的模板增强指令按照平台的指令风格进行设计,文档和代码示例为了方便统一采用微信小程序下的书写方式。

  • ASP 应用程序可在运行 Windows NT 4.0 或 Windows 95 及其更新版本的操作系统的计算机上运行。另外,可在 Macintosh 上运行 streamline 版本的 ASP。因为在 Windows 95 和 Macintosh 上的 Personal Web Server 是为个人发布设计的,所以在对 ASP 应用的支持方面有些不同。您可以在 Windows NT Work

  • 本文向大家介绍JavaScript跨平台的开源框架NativeScript,包括了JavaScript跨平台的开源框架NativeScript的使用技巧和注意事项,需要的朋友参考一下 NativeScript是一款使用JavaScript语言来构建跨平台原生移动应用的开源框架,支持iOS、Android和Windows Phone。且NativeScript的使用没有过多繁杂的要求,只需使用自己已

  • 概况 背景 Web本身就是跨平台的,这意味着这中间存在着无限的可能性。 我是一名Web Developer,对于我来能用Web开发的事情就用Web来完成就好了——不需要编译,不需要等它编译完。我想到哪我就可以写到哪,我改到哪我就可以发生哪发生了变化。 最近我在写Growth——一个帮助开发人员成长的应用,在近一个月的业余时间里,完成了这个应用的: 移动应用版:Android、Windows Pho

  • 我需要在我的应用程序中为不同的标签指定不同的FontFamily。我需要使用默认字体(如Android的Roboto和iOS的Helvetica)及其修改(如轻、中、粗)。据我所知,我应该使用Roboto-Light和Helvetica-Light来获得字体的轻版本(中号和粗体相同)。除了这个需求之外,我还需要在XAML中设置字体(如文档中所描述的),所以我最终得到了以下代码 然而,在Androi

  • 作为第三代数据统计和分析平台,诸葛实现了对用户的实名(实账号)分析,并主张互联网产品分析以用户为中心的分析思想并提供了一系列方法论。对用户的唯一标识来源于企业自身数据库对用户的唯一识别符,也即诸葛底层数据采集是以用户为中心的采集,我们提供了跨平台分析版本, 满足企业以用户为中心的整体的分析需求,不同平台相同业务价值下的用户完整的故事解读(例如:分析电商的用户在PC端浏览产品,在移动端支付的转化率)

  • 说明 由于在跨端开发中,必不可少的会遇到不同端需要有不同实现的情况。参考滴滴chameleon中的多态,megalo中实现了类似的跨平台兼容方案。需要使用时,请保证@megalo/target的版本号大于或等于0.7.2。 js的跨平台兼容 megalo中下面两种形式的引用会被特殊处理: [path-to-name]/[name]/index.mpjs [path-to-name]/[name]

  • 我似乎无法从javaFX应用程序中生成跨平台构建。 在实际的FX应用程序之前,还有一个启动器,这是清单所指向的地方。这就是pom的样子。 我还注意到,无论我选择什么概要文件,它总是生成linux版本,我可以看到这个maven日志: 我一直在看其他的帖子和查看一些视频,这似乎也发生在其他人身上,但看起来有点奇怪。同样奇怪的是,当我为windows生成时,在生成的JAR中看不到任何.dll文件。 正如