feat: feature-gate CLI args by server/client features
- CLI now shows only relevant options: --server and --server-* args
hidden when built without 'server' feature; --client-* args hidden
without 'client' feature. Run --help only displays applicable options.
- Removed verbose 'conflicts_with_all' from all mode args — clap's
implicit group("mode") already enforces mutual exclusivity.
- 'server' feature now includes TLS/HTTPS by default (axum-server);
'tls' feature removed. rustls already available via client/ureq.
- Gated KeepModes::Server, server mode detection, and server-password
validation in main.rs.
- Gated server arg reads in config.rs.
- Removed redundant #[cfg(feature = "tls")] guards from server/mod.rs.
- Gated resolve_item_id/resolve_item_ids helpers in common.rs.
- All 4 feature combinations (server+client, server-only, client-only,
neither) compile and pass tests.
This commit is contained in:
@@ -14,6 +14,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
### Changed
|
||||
|
||||
- CLI args now feature-gated: `--server` and related options hidden when built without `server` feature; `--client-*` options hidden when built without `client` feature. Run `--help` only shows relevant options.
|
||||
- `server` Cargo feature now includes TLS support by default (`axum-server`); `tls` feature removed
|
||||
- Clap `conflicts_with_all` removed from all mode args — exclusivity now handled by implicit `group("mode")`
|
||||
- Filter plugins check size before loading content into memory (prevents OOM on large inputs)
|
||||
- Status page pre-allocates collections with known capacities (meta plugins, compression info)
|
||||
- `#[inline]` on HTML escape helper functions (`esc`, `esc_attr`) for hot path performance
|
||||
|
||||
Reference in New Issue
Block a user