msquic

Cross-platform, C implementation of the IETF QUIC protocol, exposed to C, C++, C# and Rust.

MIT License

Downloads
8.9K
Stars
3.8K
Committers
78

Bot releases are visible (Hide)

msquic - MsQuic v2.1.5

Published by nibanks almost 2 years ago

What's Changed

Full patch version changes: https://github.com/microsoft/msquic/compare/v2.1.4...v2.1.5
Full minor version changes: https://github.com/microsoft/msquic/compare/release/2.0...v2.1.5

msquic - MsQuic v2.1.4

Published by nibanks about 2 years ago

What's Changed

Simple update for down-level test fixes. No product code changes.

New Contributors

Full Changelog: https://github.com/microsoft/msquic/compare/v2.1.3...v2.1.4

msquic - MsQuic v2.0.6

Published by nibanks about 2 years ago

What's Changed

Simple update for down-level test fixes. No product code changes.

Full Changelog: https://github.com/microsoft/msquic/compare/v2.0.5...v2.0.6

msquic - MsQuic v2.1.3

Published by nibanks about 2 years ago

What's Changed

Creating a new release for infra/build fixes for updated down-level tests.

Full Changelog: https://github.com/microsoft/msquic/compare/v2.1.2...v2.1.3

msquic - MsQuic v2.0.5

Published by nibanks about 2 years ago

What's Changed

Creating a new release for infra/build fixes for updated down-level tests.

Full Changelog: https://github.com/microsoft/msquic/compare/v2.0.4...v2.0.5

msquic - MsQuic v2.1.2

Published by nibanks about 2 years ago

What's Changed

Mostly a number of build and infrastructure changes.

Full Changelog: https://github.com/microsoft/msquic/compare/v2.1.1...v2.1.2

msquic - MsQuic v2.0.4

Published by nibanks about 2 years ago

What's Changed

There have been a number of generally infrastructure related changes. Publishing release for updated down-level test binaries.

Full Changelog: https://github.com/microsoft/msquic/compare/v2.0.3...v2.0.4

msquic - MsQuic v2.1.1

Published by nibanks about 2 years ago

What's Changed Since v2.1.0

Full Changelog: https://github.com/microsoft/msquic/compare/v2.1.0...v2.1.1

Full Notes from v2.1.0

Signed Windows binaries and NuGet packages are available. Signed Linux package are also available.

Official (v1) RFC, v2 (WG-LC) and draft-29 are supported by this release.

What's Changed

With 300+ commits since v2.0, it's hard to list out everything that's changed, but below you will find some of the important changes in this release.

  • Various bug fixes (#2451, #2608, #2612, #2695, #2694, #2696, #2738, #2746, #2870, #2685, #2929)
  • Various minor features and API improvements (#2702, #2724, #2729, #2730, #2740, #2852, #2872, #2883, #2907, #2785, #2932, #2876, #2936)
  • Block well-known reflection ports (#2613, #2675)
  • Update CUBIC to rfc8312bis (#2877)
  • Add Stream statistics (#2873)
  • Various infra and automation improvements (many)
  • Various documentation improvements (many)
  • Various test improvements (many)
  • CIBIR extension preview support (#2445)
  • Windows XDP preview support (many)

New Contributors

Full Changelog: https://github.com/microsoft/msquic/compare/v2.0.3...v2.1.1

msquic - MsQuic v2.1.0

Published by nibanks about 2 years ago

Signed Windows binaries and NuGet packages are available. Signed Linux package are also available.

Official (v1) RFC, v2 (WG-LC) and draft-29 are supported by this release.

What's Changed

With 300+ commits since v2.0, it's hard to list out everything that's changed, but below you will find some of the important changes in this release.

  • Various bug fixes (#2451, #2608, #2612, #2695, #2694, #2696, #2738, #2746, #2870, #2685, #2929)
  • Various minor features and API improvements (#2702, #2724, #2729, #2730, #2740, #2852, #2872, #2883, #2907, #2785, #2932, #2876, #2936)
  • Block well-known reflection ports (#2613, #2675)
  • Update CUBIC to rfc8312bis (#2877)
  • Add Stream statistics (#2873)
  • Various infra and automation improvements (many)
  • Various documentation improvements (many)
  • Various test improvements (many)
  • CIBIR extension preview support (#2445)
  • Windows XDP preview support (many)

New Contributors

Full Changelog: https://github.com/microsoft/msquic/compare/v2.0.3...v2.1.0

msquic - MsQuic v2.0.2

Published by nibanks over 2 years ago

Signed Windows binaries and NuGet packages are available. Signed Linux package are also available.

Official (v1) RFC and draft-29 are supported by this release.

Breaking Changes

  • Fix QUIC_SETTINGS across different versions (#2271)
  • Remove synchronous StreamStart (#2312)
  • Remove Level from SetParam/GetParam (#2322)
  • Add new datagram send state enum (#2342)
  • Add support for async listener stop (#2346)
  • Refactor custom CID prefix (#2363)
  • Make StreamReceiveComplete not fail (#2371)

Upgrade Notes

The following changes will be necessary for apps that upgrade from v1.* to v2.0:

  • Remove any usage of QUIC_STREAM_START_FLAG_ASYNC, replacing with QUIC_STREAM_START_FLAG_NONE if no other flags are used. If the flag was not used before, the app code must handle the call not blocking any more.
  • Remove all Level parameters passed to GetParam or SetParam.
  • Ensure the app handles ListenerStop not blocking any more. ListenerClose still blocks.
  • No more need to check for a return code from StreamReceiveComplete.
  • QUIC_ADDRESS_FAMILY_IPV6 has been changed to be platform specific rather then always windows values. For C/C++ consumers this is only a binary breaking change. For Interop consumers, the value will change for linux and macOS.

Other Changes

  • Various Linux build and packaging improvements (#2090, #2092, #2097)
  • Various OpenSSL improvements and refactoring (#2098, #2083, #2111, #2154)
  • Various certificate handling improvements and refactoring (#2155, #2158, #2160, #2164)
  • Mirroring and OneBranch build infrastructure improvements (#2093, #2097, #2125, #2127, #2128, #2129)
  • Datapath refactoring for low latency work (#2107, #2122, #2130, #2132, #2134, #2161, #2168)
  • Various WAN perf improvements (#2266, #2269, #2270, #2296, #2304, #2309, #2343)
  • Updates for ACK Frequency Draft-2 (#2347)
  • Performance tool improvements (#2110, #2113, #2166)
  • Visual Studio 2022 support (#2119)
  • Interop layers for Rust and C# (#1832, #2100, #1917)
  • Update OpenSSL to 1.1.1m (#2229)
  • Various documentation improvements
  • Added scorecard and dependabot support (#2310)
  • Fix macOS datapath asserting in an initialization race (#2398)
  • Add QUIC_STATISTICS_V2 parameter (#2386)

Changes since v2.0.0

  • Infrastructure and automation fixes
  • Fix for kqueue shared EC (#2510)
  • Extra Protection Around Stream Send Queue (#2477)
  • Fix for FC issue with small streams (#2555)

Changes since v2.0.1

  • Fix for stream shutdown cleanup bug (#2591)
msquic - MsQuic v2.0.1

Published by nibanks over 2 years ago

Signed Windows binaries and NuGet packages are available. Signed Linux package are also available.

Official (v1) RFC and draft-29 are supported by this release.

Breaking Changes

  • Fix QUIC_SETTINGS across different versions (#2271)
  • Remove synchronous StreamStart (#2312)
  • Remove Level from SetParam/GetParam (#2322)
  • Add new datagram send state enum (#2342)
  • Add support for async listener stop (#2346)
  • Refactor custom CID prefix (#2363)
  • Make StreamReceiveComplete not fail (#2371)

Upgrade Notes

The following changes will be necessary for apps that upgrade from v1.* to v2.0:

  • Remove any usage of QUIC_STREAM_START_FLAG_ASYNC, replacing with QUIC_STREAM_START_FLAG_NONE if no other flags are used. If the flag was not used before, the app code must handle the call not blocking any more.
  • Remove all Level parameters passed to GetParam or SetParam.
  • Ensure the app handles ListenerStop not blocking any more. ListenerClose still blocks.
  • No more need to check for a return code from StreamReceiveComplete.
  • QUIC_ADDRESS_FAMILY_IPV6 has been changed to be platform specific rather then always windows values. For C/C++ consumers this is only a binary breaking change. For Interop consumers, the value will change for linux and macOS.

Other Changes

  • Various Linux build and packaging improvements (#2090, #2092, #2097)
  • Various OpenSSL improvements and refactoring (#2098, #2083, #2111, #2154)
  • Various certificate handling improvements and refactoring (#2155, #2158, #2160, #2164)
  • Mirroring and OneBranch build infrastructure improvements (#2093, #2097, #2125, #2127, #2128, #2129)
  • Datapath refactoring for low latency work (#2107, #2122, #2130, #2132, #2134, #2161, #2168)
  • Various WAN perf improvements (#2266, #2269, #2270, #2296, #2304, #2309, #2343)
  • Updates for ACK Frequency Draft-2 (#2347)
  • Performance tool improvements (#2110, #2113, #2166)
  • Visual Studio 2022 support (#2119)
  • Interop layers for Rust and C# (#1832, #2100, #1917)
  • Update OpenSSL to 1.1.1m (#2229)
  • Various documentation improvements
  • Added scorecard and dependabot support (#2310)
  • Fix macOS datapath asserting in an initialization race (#2398)
  • Add QUIC_STATISTICS_V2 parameter (#2386)

Changes since v2.0.0

  • Infrastructure and automation fixes
  • Fix for kqueue shared EC (#2510)
  • Extra Protection Around Stream Send Queue (#2477)
  • Fix for FC issue with small streams (#2555)
msquic - MsQuic v2.0.0

Published by nibanks over 2 years ago

Signed Windows binaries and NuGet packages are available. Signed Linux package are also available.

Official (v1) RFC and draft-29 are supported by this release.

Breaking Changes

  • Fix QUIC_SETTINGS across different versions (#2271)
  • Remove synchronous StreamStart (#2312)
  • Remove Level from SetParam/GetParam (#2322)
  • Add new datagram send state enum (#2342)
  • Add support for async listener stop (#2346)
  • Refactor custom CID prefix (#2363)
  • Make StreamReceiveComplete not fail (#2371)

Upgrade Notes

The following changes will be necessary for apps that upgrade from v1.* to v2.0:

  • Remove any usage of QUIC_STREAM_START_FLAG_ASYNC, replacing with QUIC_STREAM_START_FLAG_NONE if no other flags are used. If the flag was not used before, the app code must handle the call not blocking any more.
  • Remove all Level parameters passed to GetParam or SetParam.
  • Ensure the app handles ListenerStop not blocking any more. ListenerClose still blocks.
  • No more need to check for a return code from StreamReceiveComplete.
  • QUIC_ADDRESS_FAMILY_IPV6 has been changed to be platform specific rather then always windows values. For C/C++ consumers this is only a binary breaking change. For Interop consumers, the value will change for linux and macOS.

Other Changes

  • Various Linux build and packaging improvements (#2090, #2092, #2097)
  • Various OpenSSL improvements and refactoring (#2098, #2083, #2111, #2154)
  • Various certificate handling improvements and refactoring (#2155, #2158, #2160, #2164)
  • Mirroring and OneBranch build infrastructure improvements (#2093, #2097, #2125, #2127, #2128, #2129)
  • Datapath refactoring for low latency work (#2107, #2122, #2130, #2132, #2134, #2161, #2168)
  • Various WAN perf improvements (#2266, #2269, #2270, #2296, #2304, #2309, #2343)
  • Updates for ACK Frequency Draft-2 (#2347)
  • Performance tool improvements (#2110, #2113, #2166)
  • Visual Studio 2022 support (#2119)
  • Interop layers for Rust and C# (#1832, #2100, #1917)
  • Update OpenSSL to 1.1.1m (#2229)
  • Various documentation improvements
  • Added scorecard and dependabot support (#2310)
  • Fix macOS datapath asserting in an initialization race (#2398)
  • Add QUIC_STATISTICS_V2 parameter (#2386)
msquic - MsQuic v1.9.0

Published by nibanks almost 3 years ago

Supports version 1 and draft-29 QUIC specification versions. Full details here.

  • Signed Windows and Xbox GameCore binaries available (officially supported).
  • Unsigned Linux binaries available (officially supported).
  • Unsigned macOS binaries available (alpha).

New Since v1.8

  • Add Xbox GameCore Support (#1973, #2005, #2084)
  • Adds performance counters around path changes (#1990)
  • Bug Fix: Fix shutdown bug by cleaning up all sends (#1850)
  • Additional connetion event documentation (#1996)
  • Add UWP nuget package support (#2002)
  • Improve client certificate validation (#1966)
  • Support non-RSA keys in OpenSSL-CAPI abstraction (#2000)
  • Bug Fix: Fix stream abort bug (#2049)
  • Bug Fix: Fix connection FC handling on stream abort (#2070)
  • Bug Fix: Fix rare endless loop in send path (#2082)
msquic - MsQuic v1.1.8

Published by nibanks about 3 years ago

Supports both version 1 (draft-34) and draft-29 specification versions. Full details here.

  • Linux still in "preview" support.
  • Openssl still in "preview" support.
  • Unsigned artifacts available below.

New Since v1.1.6

  • Lots of build/infra changes.
  • Fix a NULL pointer read in stateless retry scenario (#2010).
  • Improve state cleanup on shutdown (#2013).
msquic - MsQuic v1.0.3

Published by nibanks about 3 years ago

First officially supported version of MsQuic!

  • Supports both version 1 (draft-33) and draft-29 specification versions.
  • Linux in "preview" support.
  • OpenSSL on Windows in "preview" support.
  • Unsigned artifacts available below.

Full details here.

New Since v1.0.0

  • Lots of build/infra changes.
  • Minor batching changes to improve performance (#1321, #1322).
  • Fix a NULL pointer read in stateless retry scenario (#2010).
  • Improve state cleanup on shutdown (#2012).
msquic - MsQuic v1.8.0

Published by nibanks about 3 years ago

Supports both version 1 and draft-29 specification versions. Full details here.

  • Both Windows and Linux are officially supported.
  • Both Schannel and (quictls fork of) OpenSSL TLS libraries are officially supported.
  • MacOS still in "alpha" support.
  • Signed Windows and unsigned posix artifacts available below.

New Since v1.7

  • Update OpenSSL to v1.1.1l (#1936).
  • Add support for client certificates with OpenSSL (#1930).
  • Bug fix for race condition around stateless operations and binding initialization (#1928).
  • Bug fix for NULL pointer read in stateless retry scenario (#1951).
  • Bug fix for path changes incorrectly resetting CC's bytes in flight (#1976).
  • Refactor CC to support multiple algorithms (#1949).
  • Various fixes for packaging automation (#1915, #1916, #1921, #1939, #1961).
  • Improvements in memory calculations for posix platforms (#1928).
  • Use inbox certificate validation for macOS/iOS (#1925).
  • Build macOS/iOS framework bundles (#1927).
  • Enable macOS core dump collection in automation (#1969).
  • Xbox GameCore build support (#1947).
  • Various test code fixes (#1970, #1974).
msquic - MsQuic v1.7.0

Published by thhous-msft about 3 years ago

Supports both version 1 and draft-29 specification versions. Full details here.

  • Both Windows and Linux are officially supported.
  • Both Schannel and (quictls fork of) OpenSSL TLS libraries are officially supported.
  • MacOS still in "alpha" support.
  • Unsigned artifacts available below.

New Since v1.6

  • Enable Spectre mitigations and CFG for windows user mode (#1854).
  • Add support for tracing owning process in kernel mode (#1865).
  • Return ABORTED rather than INVALID_STATE if stream opened or started after remote close (#1875).
  • Fix potential spin loop during send if there is not enough room to send (#1886).
  • Support building posix without sendmmsg (#1896).
  • Use larger batch size if send segmentation is not available in posix (#1897).
  • Fix library version being set in incorrect location (#1905).
msquic - MsQuic v1.6.0

Published by nibanks about 3 years ago

Supports both version 1 and draft-29 specification versions. Full details here.

  • Both Windows and Linux are officially supported.
  • Both Schannel and (quictls fork of) OpenSSL TLS libraries are officially supported.
  • MacOS still in "alpha" support.
  • Unsigned artifacts available below.

New Since v1.5

  • Support ConnectionClose calls in NEW_CONNECTION Event (#1849).
  • Some Linux packaging fixes (#1852) and build fixes (#1855).
  • Support Setting Local Interface Index (#1804) on Windows.
  • Fix issue with no certificate validation set on client certificate (#1728).
msquic - MsQuic v1.5.0

Published by nibanks about 3 years ago

Supports both version 1 and draft-29 specification versions. Full details here.

  • Both Windows and Linux are officially supported.
  • Both Schannel and (quictls fork of) OpenSSL TLS libraries are officially supported.
  • MacOS still in "alpha" support.
  • Unsigned artifacts available below.

New Since v1.4

  • Windows Kernel client certificate support (#1652).
  • Added load balancer app (#1696) and automated testing (#1707).
  • Fixed a bug for QUIC_SETTING size validation logic (#1724).
  • Added support for local UDP port sharing (Linux only) (#1751).
  • Switched Param Id's to not be overlapping (#1758).
  • Refactored library load (#1748) and added static linking support (Windows only) (#1446).
  • Fixed bug around handshake idle timeout (#1780).
  • Added support for stream prioritization (#1778).
  • Fixed bug when shutting connection down during the handshake (#1797).
  • Improved testing around path changes and few minor bug fixes (#1783, #1801).
  • Improved event callback reentrancy to reduce app complexity (#1802).
  • Fixed bug related to sharing abort code for stream send/recv shutdown (#1809).
  • Fixed bug related to queuing 0-RTT during the handshake (but after start) (#1817).
  • Use root level certificate verification callback in OpenSSL (#1818).
  • Ignore Duplicate Stream Read Shutdowns (#1822).
  • Constrain processor index to processor count on posix (#1824).
  • Build speed and build dependency improvements (#1845) (#1839).
  • Initial support for Android binaries (#1835).
  • Update version negotiation to draft v4 (#1826).
  • Fix issues where datapaths and sockets might be used incorrectly (#1843) (#1837).
  • Various documentation improvements and additions.
msquic - MsQuic v1.4.0

Published by nibanks over 3 years ago

Supports both version 1 and draft-29 specification versions. Full details here.

  • Linux still in "preview" support.
  • MacOS still in "alpha" support.
  • Openssl still in "preview" support.
  • Unsigned artifacts available below.

New Since v1.3

  • Minor API improvements (including multiple API version support).
  • Minor performance improvements.
  • Various quality fixes for low memory scenarios.
  • Lots of additional documentation.
  • DPLPMTUD support.
  • The Linux and macOS status codes changed values to align better with expected POSIX error codes. Any clients depending on error codes will need to be recompiled, and any language wrappers will need to be updated to the new values.