<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Http3 on I'm OWenT</title><link>//owent.net/tags/http3.html</link><description>Recent content in Http3 on I'm OWenT</description><generator>Hugo</generator><language>zh-cn</language><copyright>&lt;a rel="license" href="https://github.com/owent/blog-hugo/blob/master/LICENSE.md"&gt;&lt;img alt="知识共享许可协议" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/80x15.png" /&gt;&lt;/a&gt;</copyright><lastBuildDate>Mon, 30 Jan 2023 11:39:45 +0000</lastBuildDate><atom:link href="//owent.net/tags/http3/index.xml" rel="self" type="application/rss+xml"/><item><title>给cmake-toolset和工具链(curl等)加HTTP/2和HTTP/3支持</title><link>//owent.net/2023/2301.html</link><pubDate>Mon, 30 Jan 2023 11:39:45 +0000</pubDate><guid>//owent.net/2023/2301.html</guid><description>&lt;h2 id="前言"&gt;前言&lt;/h2&gt;&#10;&lt;p&gt;前段时间集成一些公司内组件的时候发现它依赖 &lt;a href="https://github.com/nghttp2/nghttp2.git"&gt;nghttp2&lt;/a&gt; 。正好之前一直有给我的构建工具(&lt;a href="https://github.com/atframework/cmake-toolset"&gt;cmake-toolset&lt;/a&gt;)里的构建 &lt;a href="https://github.com/curl/curl.git"&gt;curl&lt;/a&gt; 的流程加 HTTP/2 和 HTTP/3 的计划。&#10;所以这波一次性搞定了。&lt;/p&gt;&#10;&lt;h2 id="构建工具-cmake-toolset-和-curl"&gt;构建工具 &lt;a href="https://github.com/atframework/cmake-toolset"&gt;cmake-toolset&lt;/a&gt; 和 &lt;a href="https://github.com/curl/curl.git"&gt;curl&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;首先，&lt;a href="https://github.com/curl/curl.git"&gt;curl&lt;/a&gt; 是支持多种第三方库作为 HTTP/2 和 HTTP/3（QUIC）算法库的。比如 &lt;a href="https://github.com/ngtcp2/nghttp3.git"&gt;nghttp3&lt;/a&gt;+&lt;a href="https://github.com/ngtcp2/ngtcp2.git"&gt;ngtcp2&lt;/a&gt;，或者微软家 &lt;a href="https://github.com/microsoft/msquic"&gt;msquic&lt;/a&gt;，或者Google家 &lt;a href="https://github.com/google/quiche"&gt;quiche&lt;/a&gt;。&#10;其中HTTP/3只能选一个，互相是冲突的。而Google的&lt;a href="https://github.com/google/quiche"&gt;quiche&lt;/a&gt;官方仅有对bazel构建系统的支持，而我的&lt;a href="https://github.com/atframework/cmake-toolset"&gt;cmake-toolset&lt;/a&gt;是cmake生态的。&#10;这里选用 &lt;a href="https://github.com/ngtcp2/nghttp3.git"&gt;nghttp3&lt;/a&gt;+&lt;a href="https://github.com/ngtcp2/ngtcp2.git"&gt;ngtcp2&lt;/a&gt; 的组合，主要是为了和其他的模块共享依赖。&lt;/p&gt;</description></item></channel></rss>