Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: crazyscot/qcp

v0.6.0

27 Sep 10:31
v0.6.0

Choose a tag to compare

โ›ฐ๏ธ Features

  • New output time format utc-micro / "UtcMicro" - (1747596)
  • TLS RawPublicKey authentication - (2b5b9c6)

๐Ÿ› Bug Fixes

  • Improve error reporting from the server main loop - (ea1bd4a)
  • Bandwidth configuration tx=0 special case - (5806c35)
  • Do not send ANSI reset codes when configured not to - (7dc8efb)
  • Make error output from invalid configuration files less confusing - (6bb8f2d)
  • Do not use ANSI colours in server mode - (6dc1d0c)
  • Report failures in --server mode less confusingly - (cd90b46)

โšก Performance

  • Automatic TLS cipher suite selection - (c3461d0)

๐Ÿงช Testing

  • Add regression test for repeatable CLI arguments (#170) - (43529c5)
  • Add wire marshalling checks for ServerMessageV2 and ClientMessageV2 - (99fc072)

โš™๏ธ Miscellaneous Tasks

  • If we receive bogus protocol data that is valid UTF-8, send it to debug output - (694e396)
  • Remove unused trait impls - (f087abe)
  • Tidy up boolean argument declarations - (17ca32d)
  • Update MSRV to 1.88 - (9cbf893)
  • Remove SerializeAsString, no longer needed - (f217248)
  • Give Optionalify the ability to replace serde attributes - (1e5735e)
  • Add TaggedData::with_bytes(), with_str() - (8fc003b)
  • Improve main loop error reporting - (31b15a4)

๐Ÿšœ Refactor

  • Remove EngineeringQuantity wrappers from config structure in favour of serialization helper - (a0aea97)
  • Remove VecOrString wrapper type in favour of serialization helpers - (5068263)
  • Serialize PortRange directly, without a conversion type - (4dae6e4)
  • Parsing for CongestionController - (582986e)
  • Parsing for CredentialsType - (86ba732)
  • Rationalise enum parsing - (ff59ae0)

Download notes

  • Debian and Ubuntu users will likely find the .deb packages convenient.
  • Other Linux distributions, use qcp-linux-<ARCH>-musl.tar.gz. These are static musl binaries which should work on all distributions.

v0.5.2

01 Sep 09:30
v0.5.2

Choose a tag to compare

๐Ÿ›ก๏ธ Security

  • Bump tracing-subscriber from 0.3.19 to 0.3.20 - (7af8577)

Download notes

  • Debian and Ubuntu users will likely find the .deb packages convenient.
  • Other Linux distributions, use qcp-linux-<ARCH>-musl.tar.gz. These are static musl binaries which should work on all distributions.

v0.5.1

27 Aug 23:13
v0.5.1

Choose a tag to compare

๐Ÿ—๏ธ Build, packaging & CI

  • Fix debian postinst script edge case - (e37386c)

Download notes

  • Debian and Ubuntu users will likely find the .deb packages convenient.
  • Other Linux distributions, use qcp-linux-<ARCH>-musl.tar.gz. These are static musl binaries which should work on all distributions.

v0.5.0

19 Aug 06:29
v0.5.0

Choose a tag to compare

โ›ฐ๏ธ Features

  • [breaking] Make kernel UDP buffer size configurable - (963541b)
    • Linux users: This change may cause warnings about buffer sizes requiring you to reconfigure your sysctls. Run qcp --help-buffers and follow its advice.
  • [breaking] Remove some infrequently-used CLI short options - (ecad214)
  • Add remote PMTU and RTT to --stats output (via ClosedownReport) - (92d8675)
  • --preserve option - (24b8ef2)
  • Add hidden --remote-trace option - (9b022a3)
  • Add NewReno congestion controller (protocol compat level 2) - (e865a52)
  • Initial, min and max MTU can be configured - (4919ca4)
  • Add packet loss detection thresholds as configurable settings - (37e0f32)
  • (meta) --list-features option - (c768fc9)
  • (debug) Add the server's idea of MTU and RTT to --remote-debug - (7161f6d)
  • (protocol) Introduce Variant type - (908346a)
  • (protocol) Add Compatibility level 2 - (2d0c1ef)

๐Ÿ› Bug Fixes

  • Disallow reading from or writing to non-regular files (device nodes & sockets) - (b2b036e)
  • CLI --ssh-config & -S options - (145bb5d)
  • Use correct system ssh config directory on Windows - (6ec7001)
  • Do not allow RTT to be set to 0 - (e27baa3)
  • (cli) Remove Markdown mark-up from --help output - (6362bea)
  • (protocol) Don't crash on receipt of an unrecognised Status enum - (baecbaa)
  • (protocol) Review and correct enum encoding - (4a05d4a)
  • (test) DNS lookup sometimes failed on Windows CI - (79ec010)
  • (ui) Don't report a peak rate of 0B/s on really fast transfers - (d90364b)

๐Ÿ“š Documentation

  • Autogenerate CLI HTML doc - (1163169)
  • Tidy/polish Rust docs - (c639856)

โšก Performance

  • Add direction-of-travel indicator to ClientMessage - (9c4b2ed)
  • Set initial_rtt as 2x expected RTT - (4866a98)
  • Use a larger send window, in line with Quinn's default tuning - (03f6161)

๐ŸŽจ Styling

  • Improve consistency of control channel debug output - (cfcd6a6)
  • Implement Display for TaggedData - (1e10293)
  • Reduce excess verbiage when reporting FileNotFound or IncorrectPermissions errors - (35d53ce)
  • Make server-mode output more easily distinguishable - (90d9659)

๐Ÿงช Testing

  • Add an integration test that simulates MITM attacks - (f5e28f6)
  • Move some CLI tests into integration test area - (8fe67f9)
  • Add wire marshalling regression tests for current protocol messages - (51413ec)
  • Fill-in coverage in transport.rs - (cef4f47)
  • Fix compiler warnings on apple & windows - (f3e90a2)
  • Exercise the main CLI modes and parser - (eda8d12)
  • Add unit tests for the informational main modes - (07fd94f)
  • Refactor server_main, add a unit test - (ef7f8c3)
  • Refactoring server connection.handle_incoming, add a unit test - (39be470)
  • Add unit tests for server::connection_info, server::stream - (72a0812)
  • Use pretty_assertions - (12e41b6)
  • (windows) Improve Windows config file path checks - (bd42133)

๐Ÿ—๏ธ Build, packaging & CI

  • Rename output artifact names to be more user friendly - (ec40671)
  • Scaffolding & feature to expose internal test helpers for use by qcp-unsafe-tests - (e947393)
  • Disable tests where they don't work on mingw cross-compiles - (064a4c9)

โš™๏ธ Miscellaneous Tasks

  • (ci,docs) Fix cargo doc --document-private items, add it to CI checks - (8113e84)
  • Use strum_macros:: consistently - (8f1a39b)
  • Use if cfg!() instead of cfg_if! where possible - (a787101)
  • Update template qcp.conf - (594d8d7)
  • Tidy os module exports, OS notes - (36dbbac)

๐Ÿšœ Refactor

  • (test) Make the test suite cross-platform - (47ba293)
  • Add ergonomic constructors DataTag::with_unsigned,with_signed - (af67621)
  • Improve ThroughputMode consistency - (88e4f3e)
  • Add FindTag helper trait for Vec<TaggedData<>> - (fb23c39)
  • Use derive_more::{Debug,Display} in control protocol - (a179046)
  • Move DataTag up a level so it can be common to both protocols - (8d51685)
  • Split up client main_loop a bit more for readability & testability - (a0e4b6c)
  • Check_response() makes more sense as a function of Response - (e24146f)
  • Client_main for testability and simplicity (37620bb) (f175d24)
  • Separate out process::Ssh into a generic ProcessWrapper and the ssh-specific parts - (ecd1196)
  • Tracing::setup() arguments - (79faa48)
  • Split apart server.rs for testability - (31927fb)
  • Setup_tracing becomes a struct with a trait - (e2a782f)
  • Use clap to create MainMode enum - (49781fa)

Download notes

  • Debian and Ubuntu users will likely find the .deb packages convenient.
  • Other Linux distributions, use qcp-linux-<ARCH>-musl.tar.gz. T...
Read more

v0.4.2

14 Jun 10:52
v0.4.2

Choose a tag to compare

โ›ฐ๏ธ Features

  • Report peak transfer speed - (2d4c25f)

๐Ÿ› Bug Fixes

  • Pre-flight configuration validation when not all fields are set - (e3eb0bd)

โš™๏ธ Miscellaneous Tasks

Download notes

  • Debian and Ubuntu users will likely find the .deb packages convenient.
  • Other Linux distributions, use qcp-<ARCH>-unknown-linux-musl.tar.gz. These are static musl binaries which should work on all distributions.

v0.4.1

25 May 23:11
v0.4.1

Choose a tag to compare

โ›ฐ๏ธ Features

  • Make ANSI colour support optional via config / CLI / environment variables - (e42f4aa)
  • Send long CLI output to pager (--help, --show-config) - (b88c49d)
  • --show-config also reports validation errors - (c9fd657)

๐Ÿ› Bug Fixes

  • Correctly apply system default ssh_config and ssh_options (#113) - (0ff032a)
  • SshConfig / SshOptions configuration allow a single string (#113) - (d0b5462)
  • Make SshSubsystem in config files work properly (#112) - (e9f1090)
  • Use anstream::eprintln instead of plain eprintln - (4530327)

๐ŸŽจ Styling

  • (windows) Change table style so it doesn't output mojibake when sent to more - (65b6a9f)

๐Ÿงช Testing

๐Ÿ—๏ธ Build, packaging & CI

  • (safety) Forbid unsafe rust in the qcp main crate - (dca4765)
  • Switch off coveralls - (946e026)

โš™๏ธ Miscellaneous Tasks

  • (safety) Remove unsafe code, add safety policy - (094193d)
  • (test) Fix test leaving stray files in source tree - (8745dbb)
  • Many internal rearrangements for readability and testability
  • LitterTray is now a separate crate - (b67d4bb)
  • Mark some structs and functions as public to support an external testing crate - (30a24ba)
  • Remove suboptimal error coercion in PortRange - (a579805)
  • Fix/silence linter warnings for rust 1.87 - (8aeb3f8)
  • Update manpages, fix garbage - (0bc9574)
  • Unify Rust edition 2024 across the workspace - (73c7249)
  • Fix dead code warnings on windows builds - (ceeded1)
  • Reduce the number of config extractions we perform - (41b2aad) (d94c3b2)

๐Ÿšœ Refactor

  • Configuration validation checks - (183cd48)
  • Help-buffers mode - (644bfc5)

Download notes

  • Debian and Ubuntu users will likely find the .deb packages convenient.
  • Other Linux distributions, use qcp-<ARCH>-unknown-linux-musl.tar.gz. These are static musl binaries which should work on all distributions.

v0.4.0

18 Apr 07:33
v0.4.0

Choose a tag to compare

โ›ฐ๏ธ Features

  • (config) Support ~/.config/qcp/qcp.conf on unix - (799d2ba)
  • Add Windows build - (b4af92a)
  • [breaking] Add -l login-name (same short-option as ssh) - (d7fd7d0)
  • Platform support for OSX and BSD family (#71) - (3302685)
  • Introduce --ssh-subsystem mode - (3faabc5)
  • Initial-congestion-window can now be specified as an SI quantity (10k, etc) - (73e085e)
  • Use mimalloc as memory allocator on all builds, in secure mode by default - (6ec2f99)

๐Ÿ› Bug Fixes

  • (cosmetic) Remove struct verbiage from debug output - (dcfe102)
  • (cosmetic) When compatibility levels are equal, don't say that one is newer - (5312a3a)
  • (protocol) Improve reliability of Put pre-transfer check - (acc3d1a)
  • (test) Occasional random test failure - (28663a3)
  • (test) Make tracing::setup idempotent - (92afb90)
  • User@host syntax on command line - (fa0eecd)
  • Report i/o errors from Put more reliably - (783e0d5)
  • Remove TOCTTOU bug in Put destination checks - (90977f3)

๐Ÿ“š Documentation

  • Autogenerate part of qcp_config.5; add to xtask man; tweak wording - (8077399)
  • Add note to build in release mode for best performance - (41ba6d9)
  • Fix broken links in readme on crates.io - (064a67d)

โšก Performance

  • Slight performance improvements to PUT - (19cfcf9)

๐Ÿงช Testing

  • (fix) Make test_progress_bar_for() CI-proof - (e5b3dde)
  • Improve unit test coverage in utils - (3f40c8f)
  • Refactor control/process.rs for testability - (f74870b)
  • Use nightly toolchain for coverage; exclude test modules from analysis (#43) - (ee40c66)
  • Introduce LitterTray utility - (42eec69)

๐Ÿ—๏ธ Build, packaging & CI

  • Stop shipping licenses.html - (c4a62d4)
  • Pivot windows builds to mingw - (237ad81)
  • Add codecov reporting - (935f125)
  • Include a subsystem config for /etc/ssh/sshd_config.d - (e2780a8)
  • Improve comments in the default system qcp.conf; add SshSubsystem - (923af7d)
  • Include additional files in the tarballs - (9ae6bb3)
  • Tweak build-time tag version check - (0bb779f)

โš™๏ธ Miscellaneous Tasks

  • Util::open_file returns a less complex error type - (22f7d07)
  • Autoformat cargo.toml x3 - (f308eb0)
  • Return type of set_udp_buffer_sizes - (1358232)
  • Output full error context when we might have one - (fe875af)
  • Add platform initialiser, seal SocketOptions to ensure it is always called - (ccf3b49)
  • Remove user_config_dir from AbstractPlatform - (f75e199)
  • Promote transport::ConfigBucket to crate visibility as config::ConfigProvider - (232fb75)
  • Linter fixes for rust 1.86 - (2dd28cc)
  • Tweak badge config in readme - (3542a67)
  • Tidy up crate exports - (248242e)
  • Update to rust 2024 / MSRV 1.85 - (cc6f3e7)

๐Ÿšœ Refactor

  • Use homedir (cross-platform) instead of pwd (works on unix only) - (b44929f)
  • Ssh config file parsing, to allow retrieval of arbitrary keys - (429a64d)
  • Ssh::files::Parser: deduplicate value sources - (aaf4dc1)
  • Ssh::files::Parser construction - (7eb1c74)
  • Merge ssh::ConfigFile constructors - (30dbcef)
  • Align Platform return types - (de7e611)
  • Pivot socket back-end to use rustix - (58d813b)
  • Explicitly pass setup_tracing function to run_server - (1c12702)
  • Minimise binary crate main function - (8a72cf8)
  • Consolidate control channel functionality module; add unit tests - (2a9a356)
  • Consolidate session protocol implementations; add unit tests - (71169cc)
  • Move CopyJobSpec sharable construction logic into a constructor - (9535e49)
  • Move CongestionController(Type) into protocol - (73b46ec)

Download notes

  • Debian and Ubuntu users will likely find the .deb packages convenient.
  • Other Linux distributions, use qcp-<ARCH>-unknown-linux-musl.tar.gz. These are static musl binaries which should work on all distributions.

v0.3.3

07 Mar 22:14

Choose a tag to compare

๐Ÿ›ก๏ธ Security

  • bump ring from 0.17.11 to 0.17.13 to address potential overflow panic - (06cd47b)

Download notes

  • Debian and Ubuntu users may find the .deb packages convenient.
  • The Linux binary builds qcp-<ARCH>-unknown-linux-musl.tar.gz are static musl binaries which should work on all distributions.

v0.3.2

03 Mar 06:07

Choose a tag to compare

๐Ÿ—๏ธ Build, packaging & CI

  • Fix readme in Cargo.toml - (9e16c80)

Download notes

  • Debian and Ubuntu users may find the .deb packages convenient.
  • The Linux binary builds qcp-<ARCH>-unknown-linux-musl.tar.gz are static musl binaries which should work on all distributions.

v0.3.1

03 Mar 05:19

Choose a tag to compare

โ›ฐ๏ธ Features

๐Ÿ“š Documentation

๐Ÿ—๏ธ Build, packaging & CI

  • Generate CycloneDX SBOM files and include in release bundles - (f2d4626)
  • Generate licenses.html, include in bundles - (e3ce44f)
  • Set up xtasks for man page, licenses.html, dummy debian changelog
  • Rearrange source into a workspace - (e4b05bf)

โš™๏ธ Miscellaneous Tasks

  • Fix clippy warnings for rust 1.85 - (bfae2d5)
  • Lintian fix for qcp_config.5 - (355c539)

๐Ÿšœ Refactor

  • Rework --help-buffers mode - (d461eaf)

Download notes

  • Debian and Ubuntu users may find the .deb packages convenient.
  • The Linux binary builds qcp-<ARCH>-unknown-linux-musl.tar.gz are static musl binaries which should work on all distributions.