Coder Social home page Coder Social logo

0.10 release planning about quinn HOT 12 CLOSED

djc avatar djc commented on August 21, 2024 3
0.10 release planning

from quinn.

Comments (12)

djc avatar djc commented on August 21, 2024 3

Draft changelog:

  • Initial support for PLPMTUD (#1510 with followup in #1529, thanks to aochagavia)
  • Bump rustls to 0.21.0 (#1515, thanks to cpu)
  • Fix: build and tests on FreeBSD 13.2 (#1555, thanks to Tirka)
  • Fail FreeBSD CI if any step fails (#1557, thanks to Tirka)
  • Fragmentation handling improvements (#1547)
  • Add missing exports of stats types (#1546)
  • Rename min_guaranteed_mtu to min_mtu for clarity (#1552)
  • Duplicate Transmit and EcnCodepoint across -proto and -udp (#1541)
  • quinn: take Arc<dyn Runtime> directly (#1534)
  • Support external crypto implementations (#1496, thanks to nmittler)
  • Do not require &mut self in AsyncUdpSocket::poll_send (#1519, thanks to dignifiedquire)
  • Getters for stream concurrency metrics and related documentation (#1518, thanks to FlorianUekermann)
  • Fallback to not using ECN if IP_TOS is not supported (#1516, thanks to link2xt)
  • Implement fallback for sendmmsg and recvmmsg (#1504, thanks to link2xt)
  • Borrow self in read_to_end, rather than consuming (#1502)
  • Improve error when connecting with an unsupported version (#1482)
  • Fix racy Endpoint::wait_idle (#1477)
  • Re-export udp::{RecvMeta, UdpState} for AsyncUdpSocket (#1476, thanks to XOR-op)
  • Route logs via log crate by default when tracing isn't used (#1473)
  • Fail gracefully on attempts to connect to an unspecified IP address (#1474)
  • add FreeBSD IP_RECVDSTADDR support (#1447, thanks to lucifer9)
  • udp: add safe wrapper for setsockopt() (#1461)

Documentation

  • Allow initial MTU to be specified in bulk benchmark (#1456)
  • Document how to close a stream correctly (#1493, thanks to flub)
  • Update wording about QUIC being a draft (#1468, thanks to zicklag)
  • Clarify async runtime support (#1497, thanks to mxinden)
  • Fix usage message (#1484, thanks to dzvon)

Internal improvements

  • Allow benchmarking without packet protection (#1436, thanks to stormshield-damiend)
  • Fix no-protection option in perf crate (#1550, thanks to aochagavia)
  • Don't rely on sleeping in 0-RTT test (#1522)
  • Update deny.toml (#1470, thanks to NukeManDan)
  • Bump quinn-proto version (#1520, thanks to nmittler)
  • Clippy fixes (#1466, thanks to StygianLightning)
  • Bump MSRV to 1.63 (#1548)
  • Bump quinn-udp version to 0.4 (#1535, thanks to link2xt)

from quinn.

djc avatar djc commented on August 21, 2024 3

It's done! https://github.com/quinn-rs/quinn/releases/tag/0.10.0

from quinn.

mxinden avatar mxinden commented on August 21, 2024 2

Should we try to get #1219 in?

That would be wonderful! 🙏

from quinn.

mxinden avatar mxinden commented on August 21, 2024 1

How do we plan for QUIC V2?

IIRC QUIC V2 is mainly an anti-ossification measure that won't impact public API. It'd be healthy for us to have it but I don't think it's pressing. Might bear a double-check.

Correct, see:

This document specifies QUIC version 2, which is identical to QUIC version 1 except for some trivial details. Its purpose is to combat various ossification vectors and exercise the version negotiation framework. It also serves as a template for the minimum changes in any future version of QUIC.

Note that "version 2" is an informal name for this proposal that indicates it is the second standards-track QUIC version. The protocol specified here uses a version number other than 2 in the wire image, in order to minimize ossification risk.

https://datatracker.ietf.org/doc/draft-ietf-quic-v2/

from quinn.

abonander avatar abonander commented on August 21, 2024 1

Should we consider bumping the next version to 1.0?

As long as rustls is part of the public API, I wouldn't recommend that.

from quinn.

djc avatar djc commented on August 21, 2024 1

We should probably get #1529 in before release. I think that's probably the only thing blocking the release at this point?

from quinn.

djc avatar djc commented on August 21, 2024 1

We should review #1545 and #1547 before we decide to release. I think those will be relatively straightforward, though.

from quinn.

Ralith avatar Ralith commented on August 21, 2024

I'd like to include mechanics for enabling MTUD automatically where supported (some sort of PlatformConfig?), since most users won't and shouldn't need to bother with target-specific configuration.

How do we plan for QUIC V2?

IIRC QUIC V2 is mainly an anti-ossification measure that won't impact public API. It'd be healthy for us to have it but I don't think it's pressing. Might bear a double-check.

Should we consider bumping the next version to 1.0?

I agree we're getting close, but if we're going to treat 1.0 as special we should probably defer a decision until we've actually not broken for a good while. Alternatively, we could abandon cosmetic concerns and just start bumping the major version without a care.

from quinn.

Ralith avatar Ralith commented on August 21, 2024

Should we try to get #1219 in?

As much as I'd love to get this merged finally, it doesn't need to be a blocker since it's not API-breaking, and can easily be included in a patch release. If it continues to be a difficult review it probably shouldn't delay the other more practically beneficial changes we have staged.

from quinn.

Ralith avatar Ralith commented on August 21, 2024

I think so; I should be able to review that within the next few days.

from quinn.

XOR-op avatar XOR-op commented on August 21, 2024

Since #1529 has been merged, should we plan to release 0.10? It looks like all the checkpoints have been resolved.

from quinn.

Ralith avatar Ralith commented on August 21, 2024

Rename min_guaranteed_mtu to min_mtu for clarity

This is a bit confusing as a literal changelog entry because in 0.9 the parameter was called initial_max_udp_payload_size.

udp: add safe wrapper for setsockopt()

This is purely internal.

LGTM otherwise!

from quinn.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.