Skip to content

Releases: bolcom/libunftp

libunftp v0.23.0, unftp-auth-jsonfile v0.4.0, unftp-auth-pam v0.3.0, unftp-auth-rest v0.3.0, unftp-sbe-fs v0.4.0, unftp-sbe-gcs v0.3.0

16 Feb 21:06

Choose a tag to compare

Changes in this release:

  • BREAKING: Introduced unftp-core and moved backend-facing auth/storage traits and types there.
    Backends now depend on unftp-core directly and libunftp depends on this core crate. Backends
    depending on libunftp will no longer compile. For those, updating Cargo.toml to use unftp-core should be
    sufficient though, as no other code level breaking changes were introduced.
  • BREAKING: Updated backend crates in this repository to use unftp-core and removed the ServerExt
    helpers in the unftp-sbe-* crates. Examples now use ServerBuilder directly. This was needed to avoid
    these back-ends to depend on libunftp.
  • Bump versions for unftp-auth-* and unftp-sbe-* crates to reflect the API split.

unftp-core v0.1.0

14 Feb 08:56

Choose a tag to compare

This is a new crate that defines the interfaces for storage an authentication back-ends or extensions. Previously all back-ends would depend on libunftp causing all sorts of problems like release churn for back-ends even though nothing changed for back-ends but rather something in the server implementation. Thus, this is really a split of libunftp into the server implementation part and the back-end APIs.

See #562 for more details.

libunftp v0.22.0

08 Feb 18:37

Choose a tag to compare

Changes in this release:

  • #550 Split Authenticators from the Subject Resolving (UserDetail
    Providing) concern:
    • BREAKING: Refactored Authenticator trait to be non-generic and return Principal instead of a generic
      User
      type. This decouples authentication (verifying credentials) from user detail retrieval (obtaining full user
      information).
    • Introduced Principal struct representing an authenticated user's identity (username). This is the minimal
      information returned by authentication.
    • Introduced UserDetailProvider trait to convert a Principal into a full UserDetail implementation. This
      allows
      authentication and user detail lookup to be separated.
    • Introduced AuthenticationPipeline struct that combines an Authenticator and a UserDetailProvider to provide
      a
      complete authentication flow.
    • Added DefaultUserDetailProvider implementation that returns DefaultUser for convenience.
    • BREAKING: Updated all unftp-auth-* crates (unftp-auth-jsonfile, unftp-auth-pam, unftp-auth-rest) to
      use
      the new non-generic Authenticator trait.
    • Updated all examples and tests to use the new authentication pattern.
  • #551 Let authenticators know the FTP Command channel TLS state
  • #553 Introduced a new "pooled listener" mode
    (.pooled_listener_mode()) for high-traffic servers.
    • This mode improves passive connection performance and security by pre-binding all passive ports.
    • Fixed a memory leak in the passive port Switchboard (used by Pooled and Proxy modes). A new scavenger task now
      cleans up expired and orphaned port reservations.
    • Fixed the PORT command (Active Mode) so that it now works correctly in all listener modes.
    • Fixed that the EPSV command is now correctly disabled in Proxy Protocol mode where it is not (yet) supported.
  • BREAKING: Removed the deprecated Server::new and Server::with_authenticator methods. The ServerBuilder
    struct should be used instead.

libunftp v0.21.1

23 Dec 15:42

Choose a tag to compare

Changes in this release

  • Compile against Rust 1.92.0 in CI
  • #547 Put metrics and proxy-protocol functionality behind features (prometheus and proxy_protocol).
  • #548 Fix error message typos
  • #541 Initial MLSD (Machine List Directory) command implementation (RFC 3659)
  • #541 Fix MLST output formatting
  • #541 Fix MLSx facts must have a terminating semicolon according to RFC 3659 section 7.2
  • #541 Fix wrong use of metadata.uid() instead of metadata.gid()
  • #540 Fix build with "ring" instead of "aws_lc_rs" feature
  • Implement 550 error code for RNFR command
  • Bump dependencies

New Contributors

Full Changelog: libunftp-0.21.0...libunftp-0.21.1

unftp-sbe-gcs v0.2.9

26 Apr 12:43

Choose a tag to compare

Changes in this release:

  • Upgrade to libunftp v0.21.0
  • Upgrade dependencies

unftp-sbe-fs-0.3.0

26 Apr 12:36

Choose a tag to compare

Changes in this release

  • Upgrade to libunftp v0.21.0
  • Breaking: Don't panic during Filesystem::new
  • Upgrade dependencies

unftp-auth-rest v0.2.8

26 Apr 13:32

Choose a tag to compare

Changes in this release:

Upgrade to libunftp v0.21.0
Upgrade dependencies

unftp-auth-pam v0.2.7

26 Apr 13:39

Choose a tag to compare

Changes in this release:

Upgrade to libunftp v0.21.0
Upgrade dependencies

unftp-auth-jsonfile v0.3.6

26 Apr 13:30

Choose a tag to compare

Changes in this release:

Upgrade to libunftp v0.21.0
Upgrade dependencies

libunftp v0.21.0

25 Apr 21:34

Choose a tag to compare

Changes in this release:

  • Upgraded dependencies
  • Compiling against Rust 1.85.0
  • Bumped codebase to Edition 2024
  • #531 Implement EPSV FTP command
  • #533 BREAKING: Make passive port range inclusive
  • #519 Create new ring feature to use ring over aws-lc-rs
  • #536 Implement MLST command
  • Add ftps_manual method to ServerBuilder, hiding it behind a experimental feature.