203 lines
12 KiB
HTML
203 lines
12 KiB
HTML
<html>
|
||
<head>
|
||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||
<title>Introduction</title>
|
||
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
|
||
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
|
||
<link rel="home" href="../index.html" title="Chapter 1. Boost.Beast">
|
||
<link rel="up" href="../index.html" title="Chapter 1. Boost.Beast">
|
||
<link rel="prev" href="release_notes.html" title="Release Notes">
|
||
<link rel="next" href="quick_start.html" title="Quick Look">
|
||
</head>
|
||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||
<table cellpadding="2" width="100%"><tr>
|
||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
|
||
<td align="center"><a href="../../../../../index.html">Home</a></td>
|
||
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
|
||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
|
||
</tr></table>
|
||
<hr>
|
||
<div class="spirit-nav">
|
||
<a accesskey="p" href="release_notes.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="quick_start.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
|
||
</div>
|
||
<div class="section">
|
||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||
<a name="beast.introduction"></a><a class="link" href="introduction.html" title="Introduction">Introduction</a>
|
||
</h2></div></div></div>
|
||
<p>
|
||
Beast is a C++ header-only library serving as a foundation for writing interoperable
|
||
networking libraries by providing <span class="bold"><strong>low-level HTTP/1, WebSocket,
|
||
and networking protocol</strong></span> vocabulary types and algorithms using the
|
||
consistent asynchronous model of <a href="../../../../../libs/asio/index.html" target="_top">Boost.Asio</a>.
|
||
</p>
|
||
<p>
|
||
This library is designed for:
|
||
</p>
|
||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||
<li class="listitem">
|
||
<span class="bold"><strong>Symmetry:</strong></span> Algorithms are role-agnostic;
|
||
build clients, servers, or both.
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="bold"><strong>Ease of Use:</strong></span> <a href="../../../../../libs/asio/index.html" target="_top">Boost.Asio</a>
|
||
users will immediately understand Beast.
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="bold"><strong>Flexibility:</strong></span> Users make the important
|
||
decisions such as buffer or thread management.
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="bold"><strong>Performance:</strong></span> Build applications handling
|
||
thousands of connections or more.
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="bold"><strong>Basis for Further Abstraction.</strong></span> Components
|
||
are well-suited for building upon.
|
||
</li>
|
||
</ul></div>
|
||
<p>
|
||
This library is not a client or server, but it can be used to build those things.
|
||
Many examples are provided, including clients and servers, which may be used
|
||
as a starting point for writing your own program.
|
||
</p>
|
||
<h4>
|
||
<a name="beast.introduction.h0"></a>
|
||
<span class="phrase"><a name="beast.introduction.motivation"></a></span><a class="link" href="introduction.html#beast.introduction.motivation">Motivation</a>
|
||
</h4>
|
||
<p>
|
||
Beast empowers users to create their own libraries, clients, and servers using
|
||
HTTP/1 and WebSocket. Code will be easier and faster to implement, understand,
|
||
and maintain, because Beast takes care of the low-level protocol details. The
|
||
HTTP and WebSocket protocols drive most of the World Wide Web. Every web browser
|
||
implements these protocols to load webpages and to enable client side programs
|
||
(often written in JavaScript) to communicate interactively. C++ benefits greatly
|
||
from having a standardized implementation of these protocols.
|
||
</p>
|
||
<div class="section">
|
||
<div class="titlepage"><div><div><h3 class="title">
|
||
<a name="beast.introduction.requirements"></a><a class="link" href="introduction.html#beast.introduction.requirements" title="Requirements">Requirements</a>
|
||
</h3></div></div></div>
|
||
<div class="important"><table border="0" summary="Important">
|
||
<tr>
|
||
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../../doc/src/images/important.png"></td>
|
||
<th align="left">Important</th>
|
||
</tr>
|
||
<tr><td align="left" valign="top"><p>
|
||
This library is for programmers familiar with <a href="../../../../../libs/asio/index.html" target="_top">Boost.Asio</a>.
|
||
Users who wish to use asynchronous interfaces should already know how to
|
||
create concurrent network programs using callbacks or coroutines.
|
||
</p></td></tr>
|
||
</table></div>
|
||
<p>
|
||
Beast requires:
|
||
</p>
|
||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||
<li class="listitem">
|
||
<span class="bold"><strong>C++11:</strong></span> Robust support for most language
|
||
features.
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="bold"><strong>Boost:</strong></span> Beast only works with Boost,
|
||
not stand-alone Asio
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="bold"><strong>OpenSSL:</strong></span> Version 1.0.2 or higher. Required
|
||
to build the tests, examples, and to use TLS/Secure sockets.
|
||
</li>
|
||
</ul></div>
|
||
<p>
|
||
Tested with these compilers: msvc-14+, gcc 4.8.4+, clang 3.6+.
|
||
</p>
|
||
<p>
|
||
Sources are <span class="bold"><strong>header-only</strong></span>. Adding additional
|
||
libraries to the linking step for your programs to use Beast is normally
|
||
not necessary, except for these cases:
|
||
</p>
|
||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||
<li class="listitem">
|
||
When using coroutines created by calling <a href="../../../../../doc/html/boost_asio/reference/spawn.html" target="_top"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">spawn</span></code></a>, you will need to add
|
||
the <a href="../../../../../libs/coroutine/index.html" target="_top">Boost.Coroutine</a>
|
||
library to your program.
|
||
</li>
|
||
<li class="listitem">
|
||
When using <a href="../../../../../doc/html/boost_asio/reference/ssl__stream.html" target="_top"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">stream</span></code></a>, you will need to add
|
||
the <a href="https://www.openssl.org/" target="_top">OpenSSL</a> library to
|
||
your program.
|
||
</li>
|
||
</ul></div>
|
||
<p>
|
||
Please visit the <a href="../../../../../more/getting_started.html" target="_top">Boost documentation</a>
|
||
for instructions on how to build and link with Boost libraries for your particular
|
||
environment system.
|
||
</p>
|
||
</div>
|
||
<div class="section">
|
||
<div class="titlepage"><div><div><h3 class="title">
|
||
<a name="beast.introduction.reporting_bugs"></a><a class="link" href="introduction.html#beast.introduction.reporting_bugs" title="Reporting Bugs">Reporting Bugs</a>
|
||
</h3></div></div></div>
|
||
<p>
|
||
To report bugs or get help using Beast, GitHub issues are preferred. Please
|
||
visit <a href="https://github.com/boostorg/beast/issues" target="_top">https://github.com/boostorg/beast/issues</a>
|
||
to ask a question, report a defect, or request a feature. If you prefer to
|
||
keep your issue or question confidential please email the author at <a href="mailto:vinnie.falco%40gmail.com" target="_top">vinnie.falco@gmail.com</a>.
|
||
</p>
|
||
</div>
|
||
<div class="section">
|
||
<div class="titlepage"><div><div><h3 class="title">
|
||
<a name="beast.introduction.credits"></a><a class="link" href="introduction.html#beast.introduction.credits" title="Credits">Credits</a>
|
||
</h3></div></div></div>
|
||
<p>
|
||
Boost.Asio is the inspiration behind which all of the interfaces and implementation
|
||
strategies are built. Some parts of the documentation are written to closely
|
||
resemble the wording and presentation of Boost.Asio documentation. Credit
|
||
goes to <a href="https://github.com/chriskohlhoff" target="_top">Christopher Kohlhoff</a>
|
||
for his wonderful Asio library and the ideas in <a href="http://cplusplus.github.io/networking-ts/draft.pdf" target="_top"><span class="bold"><strong>C++ Extensions for Networking</strong></span></a> which power
|
||
Beast.
|
||
</p>
|
||
<p>
|
||
Beast would not be possible without the support of <a href="https://www.ripple.com" target="_top">Ripple</a>
|
||
during the library's early development, or the ideas, time and patience contributed
|
||
by <a href="https://github.com/JoelKatz" target="_top">David Schwartz</a>, <a href="https://github.com/ximinez" target="_top">Edward Hennis</a>, <a href="https://github.com/howardhinnant" target="_top">Howard
|
||
Hinnant</a>, <a href="https://github.com/miguelportilla" target="_top">Miguel Portilla</a>,
|
||
<a href="https://github.com/nbougalis" target="_top">Nik Bougalis</a>, <a href="https://github.com/seelabs" target="_top">Scott
|
||
Determan</a> and <a href="https://github.com/scottschurr" target="_top">Scott Schurr</a>.
|
||
Many thanks to <a href="https://github.com/K-ballo" target="_top">Agustín Bergé</a>,
|
||
<a href="http://www.boost.org/users/people/glen_fernandes.html" target="_top">Glen Fernandes</a>,
|
||
and <a href="https://github.com/pdimov" target="_top">Peter Dimov</a> for tirelessly
|
||
answering questions on the <a href="https://slack.cpp.al/" target="_top">C++ Language
|
||
Slack Workspace</a>.
|
||
</p>
|
||
<p>
|
||
Thanks to <a href="https://github.com/djarek" target="_top">Damian Jarek</a> for
|
||
his generous participation and source code contributions.
|
||
</p>
|
||
<p>
|
||
Thanks to <a href="https://github.com/madmongo1" target="_top">Richard Hodges</a>
|
||
(hodges.r@gmail.com) for maintaining Beast on behalf of the <a href="https://cppalliance.org" target="_top">C++
|
||
Alliance</a>.
|
||
</p>
|
||
<p>
|
||
Many thanks to <a href="https://www.jetbrains.com" target="_top">Jetbrains s.r.o.</a>
|
||
for generously providing the Beast development team with All Product Developmnent
|
||
Licenses.
|
||
</p>
|
||
</div>
|
||
</div>
|
||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||
<td align="left"></td>
|
||
<td align="right"><div class="copyright-footer">Copyright © 2016-2019 Vinnie
|
||
Falco<p>
|
||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||
</p>
|
||
</div></td>
|
||
</tr></table>
|
||
<hr>
|
||
<div class="spirit-nav">
|
||
<a accesskey="p" href="release_notes.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="quick_start.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
|
||
</div>
|
||
</body>
|
||
</html>
|