分支 | Linux / Windows | 覆盖率 | 文档 | 矩阵 |
---|---|---|---|---|
master | ||||
develop |
Beast 是一个 C++ 仅头文件库,作为编写可互操作网络库的基础,通过使用 Boost.Asio 一致的异步模型提供低级 HTTP/1、WebSocket 和网络协议词汇类型和算法。
该库设计用于:
对称性: 算法与角色无关;可构建客户端、服务器或两者。
易用性: Boost.Asio 用户将立即理解 Beast。
灵活性: 用户可以做出重要决策,如缓冲区或线程管理。
性能: 构建可处理数千个或更多连接的应用程序。
进一步抽象的基础: 组件非常适合用于构建。
<a href="https://github.com/vinniefalco/CppCon2018">CppCon 2018</a> | <a href="https://www.bishopfox.com/case_study/securing-beast/">Bishop Fox 2018</a> |
---|---|
<a href="https://www.youtube.com/watch?v=7FQwAjELMek"><img width="320" height="180" alt="Beast" src="https://yellow-cdn.veclightyear.com/0a4dffa0/4af248f4-9581-477a-90ed-705762116191.png"></a> | <a href="https://youtu.be/4TtyYbGDAj0"><img width="320" height="180" alt="Beast 安全审查" src="https://yellow-cdn.veclightyear.com/0a4dffa0/8756dcf2-878d-49e5-958d-8d91d102e538.png"></a> |
<a href="https://github.com/vinniefalco/CppCon2018">CppCon 2017</a> | <a href="http://cppcast.com/2017/01/vinnie-falco/">CppCast 2017</a> |
------------ | ------------ |
<a href="https://www.youtube.com/watch?v=WsUnnYEKPnI"><img width="320" height = "180" alt="Beast" src="https://yellow-cdn.veclightyear.com/0a4dffa0/bc44307a-4354-4a87-8211-b23bdafa77ea.png"></a> | <a href="http://cppcast.com/2017/01/vinnie-falco/"><img width="180" height="180" alt="Vinnie Falco" src="https://avatars1.githubusercontent.com/u/1503976?v=3&u=76c56d989ef4c09625256662eca2775df78a16ad&s=180"></a> |
这个软件正处于首次官方发布阶段。接口可能会根据用户反馈进行调整。最近的更改请查看更新日志。
这个库面向熟悉Boost.Asio的程序员。希望使用异步接口的用户应该已经知道如何使用回调或协程创建并发网络程序。
使用Microsoft Visual C++时,需要Visual Studio 2017或更高版本。
构建测试和示例需要以下组件之一:
Beast是仅头文件的库。要使用它,只需在源文件中添加必要的#include
行,如下所示:
#include <boost/beast.hpp>
如果使用协程,需要链接Boost.Coroutine库。请参阅Boost文档,了解如何在特定构建系统中完成此操作的说明。
要使用Beast的最新官方发布版本,只需获取最新的Boost发行版,并按照说明将其集成到您的开发环境中。如果您希望构建示例和测试,或者想预览即将推出的更改和功能,建议克隆"Boost超级项目"并在树内(即超 级项目的libs/beast子目录)使用Beast。
官方仓库包含以下分支:
每个分支都需要相应的Boost分支及其所有子项目。例如,如果您希望使用Beast的master分支版本,应该克隆Boost超级项目,切换到超级项目的master分支,并获取包括Beast在内的所有对应该分支的Boost库。
要在本地克隆超级项目并切换到主项目目录,请使用:
git clone --recursive https://github.com/boostorg/boost.git
cd boost
"bjam"用于构建Beast和Boost库。在非Windows系统上,使用以下命令构建bjam:
./bootstrap.sh
在Windows命令行中,使用以下命令构建bjam:
.\BOOTSTRAP.BAT
构建测试和示例需要安装OpenSSL。如果OpenSSL安装在非系统位置,您需要将user-config.jam文件复制到您的主目录,并将OPENSSL_ROOT
环境变量设置为包含OpenSSL安装的路径。
如果安装到系统目录中,OpenSSL将会被自动找到并使用。
sudo apt install libssl-dev
在以下代码片段中,将 path
替换为你安装 vcpkg 的路径。示例假设是32位构建,如果你构建64位版本,请将路径中的 x32-windows
替换为 x64-windows
。
vcpkg install openssl --triplet x32-windows SET OPENSSL_ROOT=path\installed\x32-windows
vcpkg install openssl --triplet x32-windows $env:OPENSSL_ROOT = "path\x32-windows"
vcpkg.exe install openssl --triplet x32-windows export OPENSSL_ROOT=path/x32-windows
使用 brew:
brew install openssl export OPENSSL_ROOT=$(brew --prefix openssl) # 安装bjam工具用户特定配置文件以读取OPENSSL_ROOT # 参见 https://www.bfgroup.xyz/b2/manual/release/index.html cp ./libs/beast/tools/user-config.jam $HOME
确保bjam工具(也称为"b2")在你的shell用于查找可执行文件的路径中可用。Beast项目位于包含Boot超级项目的目录相对的"libs/beast"中。要构建Beast测试、示例和文档,请使用以下命令:
export PATH=$PWD:$PATH
b2 -j2 libs/beast/test cxxstd=11 # bjam必须在你的$PATH中
b2 -j2 libs/beast/example cxxstd=11 # "-j2"表示使用两个处理器
b2 libs/beast/doc # 这需要Doxygen和Saxon
有关配置、使用和构建超级项目中的库的其他说明,可以在Boost Wiki中找到。
可以使用CMake生成非常好的Visual Studio解决方案和一组Visual Studio项目文件,使用以下命令:
cd libs/beast
mkdir bin
cd bin
cmake -G "Visual Studio 17 2022" -A Win32 .. # 用于32位Windows构建,或
cmake -G "Visual Studio 17 2022" -A x64 .. # 用于64位Windows 构建
存储库中的文件布局如下:
./
bin/ 创建此目录以存放可执行文件和项目文件
bin64/ 创建此目录以存放64位Windows可执行文件和项目文件
doc/ 文档的源代码和脚本
include/ 头文件所在位置
example/ 独立的示例程序
meta/ 用于Boost集成的元数据
test/ Beast的单元测试
tools/ 用于CI测试的脚本
这些示例是完整的、独立的程序,你可以自己构建和运行(它们位于example
目录中)。
https://www.boost.org/doc/libs/develop/libs/beast/doc/html/beast/quick_start.html
根据Boost软件许可证1.0版分发。 (见附带的LICENSE_1_0.txt文件或复制自 https://www.boost.org/LICENSE_1_0.txt)
请在此报告问题或提出问题: https://github.com/boostorg/beast/issues
如果你想为Beast做出贡献并帮助我们保持高质量,请考虑对活跃的拉取请求进行代码审查。来自用户和利益相关者的任何反馈,即使是关于事物如何运作或为什么以某种方式完成的简单问题,都具有价值,可用于改进库。代码审查提供以下好处:
你可以查看已关闭的拉取请求,了解如何进行审查。要进行代码审查,只需用你的GitHub账户登录,然后在下面的任何开放拉取请求中添加评论,不要害羞!
<p>https://github.com/boostorg/beast/pulls</p>以下是一些学习更多关于代码审查的资源:
Beast非常重视代码审查以及来自用户和利益相关者对其接口的任何反馈。即使你只是有问题,在代码审查或问题中提出这些问题也能提供宝贵的信息,这些信息可用于改进库 - 请不要犹豫,没有哪个问题是微不足道或不重要的!
最强AI数据分析助手
小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。
像人一样思考的AI智能体
imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。
AI数字人视频创作平台
Keevx 一款开箱即用的AI数字人视频创作平台,广泛 适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。
一站式AI创作平台
提供 AI 驱动的图片、视频生成及数字人等功能,助力创意创作
AI办公助手,复杂任务高效处理
AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!
AI 辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
AI小说写作助手,一站式润色、改写、扩写
蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。
全能AI智能助手,随时解答生活与工作的多样问题
问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。
实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。
一键生成PPT和Word,让学习生活更轻松
讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档 。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。
最新AI工具、AI资讯
独家AI资源、AI项目落地
微信扫一扫关注公众号