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
Changes in this release:
- BREAKING: Introduced
unftp-coreand moved backend-facing auth/storage traits and types there.
Backends now depend onunftp-coredirectly andlibunftpdepends on this core crate. Backends
depending onlibunftpwill no longer compile. For those, updating Cargo.toml to useunftp-coreshould be
sufficient though, as no other code level breaking changes were introduced. - BREAKING: Updated backend crates in this repository to use
unftp-coreand removed theServerExt
helpers in theunftp-sbe-*crates. Examples now useServerBuilderdirectly. This was needed to avoid
these back-ends to depend onlibunftp. - Bump versions for
unftp-auth-*andunftp-sbe-*crates to reflect the API split.
unftp-core v0.1.0
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
Changes in this release:
- #550 Split Authenticators from the Subject Resolving (UserDetail
Providing) concern:- BREAKING: Refactored
Authenticatortrait to be non-generic and returnPrincipalinstead of a generic
User
type. This decouples authentication (verifying credentials) from user detail retrieval (obtaining full user
information). - Introduced
Principalstruct representing an authenticated user's identity (username). This is the minimal
information returned by authentication. - Introduced
UserDetailProvidertrait to convert aPrincipalinto a fullUserDetailimplementation. This
allows
authentication and user detail lookup to be separated. - Introduced
AuthenticationPipelinestruct that combines anAuthenticatorand aUserDetailProviderto provide
a
complete authentication flow. - Added
DefaultUserDetailProviderimplementation that returnsDefaultUserfor convenience. - BREAKING: Updated all
unftp-auth-*crates (unftp-auth-jsonfile,unftp-auth-pam,unftp-auth-rest) to
use
the new non-genericAuthenticatortrait. - Updated all examples and tests to use the new authentication pattern.
- BREAKING: Refactored
- #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::newandServer::with_authenticatormethods. TheServerBuilder
struct should be used instead.
libunftp v0.21.1
Changes in this release
- Compile against Rust 1.92.0 in CI
- #547 Put metrics and proxy-protocol functionality behind features (
prometheusandproxy_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
- @Javex made their first contribution in #539
- @procr1337 made their first contribution in #540
Full Changelog: libunftp-0.21.0...libunftp-0.21.1
unftp-sbe-gcs v0.2.9
Changes in this release:
- Upgrade to libunftp v0.21.0
- Upgrade dependencies
unftp-sbe-fs-0.3.0
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
Changes in this release:
Upgrade to libunftp v0.21.0
Upgrade dependencies
unftp-auth-pam v0.2.7
Changes in this release:
Upgrade to libunftp v0.21.0
Upgrade dependencies
unftp-auth-jsonfile v0.3.6
Changes in this release:
Upgrade to libunftp v0.21.0
Upgrade dependencies
libunftp v0.21.0
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
ringfeature to useringoveraws-lc-rs - #536 Implement MLST command
- Add
ftps_manualmethod to ServerBuilder, hiding it behind aexperimentalfeature.