diff --git a/README.md b/README.md index 65afa2f..c13711e 100644 --- a/README.md +++ b/README.md @@ -138,10 +138,14 @@ Aliases are accepted for readability: `receive_delay` for `rd`, `send_delay` for `sd`, `server_processing` for `proc`, `server_received_count` for `server_received`, and `server_received_window` for `server_window`. -The default table output favors readability and omits `echo_sent` rows. Custom -table column selections and machine-friendly formats include all event rows. -Missing table values render as `-`; missing CSV and TSV values render as empty -fields; missing JSONL values render as `null`. +The default table output favors readability with compact columns: +`event,seq,rtt,rd,sd,ipdv,proc,message`. It omits `echo_sent` rows. Passing +`--columns default` is the same as omitting `--columns`, including the default +table row filtering. Custom table column selections include all event rows. +CSV, TSV, and JSONL default to all columns for structured export; use +`--columns all` explicitly to request every column in any format. Missing table +values render as `-`; missing CSV and TSV values render as empty fields; +missing JSONL values render as `null`. Use JSON Lines for structured event streaming: diff --git a/crates/irtt-cli/src/cmd/client/output.rs b/crates/irtt-cli/src/cmd/client/output.rs index a3ee717..536bfbc 100644 --- a/crates/irtt-cli/src/cmd/client/output.rs +++ b/crates/irtt-cli/src/cmd/client/output.rs @@ -27,7 +27,10 @@ impl OutputConfig { header: HeaderMode, verbose: bool, ) -> Result { - let default_table_rows = format == OutputFormat::Table && columns.is_none(); + let uses_default_columns = columns + .map(|columns| columns.trim() == "default") + .unwrap_or(true); + let default_table_rows = format == OutputFormat::Table && uses_default_columns; let columns = match columns { Some(columns) => parse_columns(columns, format, verbose)?, None => default_columns(format, verbose), @@ -740,18 +743,18 @@ fn default_columns(format: OutputFormat, verbose: bool) -> Vec { let mut columns = vec![ Column::Event, Column::Seq, - Column::Remote, Column::Rtt, Column::ReceiveDelay, Column::SendDelay, Column::Ipdv, Column::ServerProcessing, - Column::ServerReceivedCount, - Column::ServerReceivedWindow, Column::Message, ]; if verbose { columns.extend([ + Column::Remote, + Column::ServerReceivedCount, + Column::ServerReceivedWindow, Column::RawRttUs, Column::AdjustedRttUs, Column::Bytes,