Tquic Versions Save

A high-performance, lightweight, and cross-platform QUIC library

v0.12.0

2 weeks ago

Added

  • Buffer disordered zero rtt packets on the server endpoint
  • Add dummy congestion controller for testing and expriments
  • Tweak configurations and initialization of flow control
  • Improve comments of bbr congestion control algorithm
  • Add workflow and plot tools for benchmarking
  • tquic_tools: add the version option

Fixed

  • Fix dropping datagrams from unknown connections on the client endpoint
  • Fix handling restart from idle for bbr/bbr3 algorithms
  • tquic_tools: resolve minor issues

v0.11.0

1 month ago

Added

  • tquic_tools: group different options by category and prioritize commonly used options
  • Add the header file of BoringSSL library in tquic.h
  • Resolve new issues found by cargo clippy
  • Add integration testing for multipath
  • Update run_endpoint.sh to enable keyupdate/chacha20 testcase for server

Changed

  • tquic_tools: rename max_requests_per_thread to total_requests_per_thread

Fixed

  • Fix RangeSet::filter() used by Redundant multipath scheduler
  • Fix injected stream frames for Redundant multipath scheduler

v0.10.0

1 month ago

Added

  • Add support for responding to key updates
  • Add datagram packetization layer PMTU discovery
  • Improve API for stream creation
  • Limit configuration value of type varint
  • Add pacing_rate to PathStats
  • tquic_server: output stats when server connection is closed
  • Add workflow and plot tools for fct testing

Fixed

  • Fix the issue where bbr3 cannot exit slow start due to high packet loss rate

Security

  • Limit memory consuption for tracking closed stream ids

v0.9.0

2 months ago

Added

  • Improve FFI for quic_tls_config_t
  • Update the handling of probe timeout to conform with RFC 9002
  • Update limit of the output buffer for Connection::send()
  • Add plot tools for goodput and interop testing

Changed

  • Change quic_config_set_tls_config() in FFI
  • Change quic_tls_config_select_methods_t in FFI

Fixed

  • Fix NewToken frame in qlog
  • Fix the unit test case conn_write_qlog that fails with low probability

Security

  • limit the number of queued RETIRE_CONNECTION_ID frames

v0.8.1

2 months ago

Removed

  • Remove the sfv feature flag from h3 (to resolve a build issue at docs.rs)

v0.8.0

3 months ago

Added

  • Support anti-amplification limit for server
  • Support customized config when initiating a connection
  • Add callback based FFI for writing the keylog and qlog
  • Support compiling dynamic library for C language
  • Update the processing of LossDetection timeout in multipath mode
  • Update crate docs about PathStats/TlsConfig/TlsConfigSelector

Security

  • Discard old Path Challenges received if needed

v0.7.0

4 months ago

Added

  • Add support for building on FreeBSD
  • Add more path level metrics
  • Add more quic and recovery events in qlog
  • Add tquic_qvis.sh to convert qlog files to be compatible with qvis
  • Update MultipathScheduler interface for some advanced schedulers
  • Add tquic_tools_test.sh for additional end-to-end testing
  • tquic_client: support early data
  • tquic_tools: use millisecond precision for log timestamp
  • tquic_tools: add log-file option to write logs to specified file
  • tquic_tools: add active-cid-limit option to allow more paths

Changed

  • tquic_tools: change the qlog-log option to the qlog-dir option
  • tquic_tools: change the dump-path option to the dump-dir option
  • tquic_tools: update default pto linear factor
  • tquic_client: change the local_addresses option to allow the os to choose available ports
  • tquic_client: use local_addresses option to specify the addresses to bind in both singlepath and multipath mode.

Fixed

  • Fix record separator of qlog in json-seq format

v0.6.0

4 months ago

Added

  • Support the latest version of qlog (v0.4)
  • Add cid_len option to tquic tools
  • Ignore undecrypted packets with invalid format

Changed

  • Move website dir to tquic-group/tquic-website repo

Fixed

  • Fix the selected MTU for the sending path
  • Fix anti-deadlock PTO during handshake
  • Fix the assertion of negotiated parameters in TLS unit tests

v0.5.0

5 months ago

Added

  • Add support for building on MacOS
  • Add support for stateless reset
  • Release tls_conf_selector as soon as the handshake is completed.
  • Add linear mode and upper limit for probe timeout
  • Add FFI enable_multipath()/set_multipath_algorithm()
  • Add RoundRobin multipath scheduler
  • Add more units test for multipath transport
  • tquic_client: stop trying and exit if it fails to reconnect the server multiple times.
  • tquic_client: output the stats first and then exit when it receives an SIGINT signal.

Changed

  • Simplify FFI quic_set_logger() to avoid from return unnessary errors
  • Rename set_multipath() in Config to enable_multipath()
  • Rename set_multipath_algor() in Config to set_multipath_algorithm()
  • Change default congestion control algorithm to BBR

Fixed

  • Fix stream scheduling for multiple incredmental streams
  • Fix reinjection for multipath transport

v0.4.0

5 months ago

Added

  • Add config API for initial_congestion_window/min_congestion_window
  • Add congestion_control_algor option for tquic_client/tquic_server
  • Add initial_congestion_window/min_congestion_window option for tquic_client/tquic_server
  • Add more unittest cases for delivery_rate/minmax
  • Simplify ffi feature in tls module
  • Add typos.toml and fix all typos
  • Add a workflow for goodput measurements

Changed

  • Rename tquic_apps to tquic_tools
  • Move examples to tquic-group/tquic-examples-* repos

Fixed

  • Keep cc unchanged for non-data packets (e.g., Initial and Handshake)
  • Update the LICENSE file