cbor-cli 0.7.0

Encode, decode, and inspect CBOR (RFC 8949) from the command line. Convert between CBOR, JSON, YAML, and TOML via serde, with streaming support for CBOR sequences.
Documentation
# Changelog

## v0.6.0-alpha.0 (unreleased)

Modernization pass: core engine rebuilt on maintained crates, documentation
overhauled. No breaking CLI changes.

### Engine

- Replaced archived `serde_cbor` 0.11 with `cbor2` 1.1 — a full RFC 8949
  implementation with tag, bignum, and deterministic-encoding support.
- `inspect` now emits Concise Diagnostic Notation (RFC 8949 §8) instead of
  Rust's `{:?}` debug format. Byte strings render as `h'...'`, tagged bignums
  render as their integer value, output is standard and compact.
- `inspect` is fully streaming: reads one CBOR item at a time and writes
  diagnostic output directly to the writer via a `fmt::Write``io::Write`
  adapter. No input buffering, no per-item allocation.
- `import`/`export` CBOR paths are streaming end-to-end (no regression from
  0.5.0).

### Dependencies

- `clap` 4.4 → 4.6
- `serde_json` 1.0.111 → 1.0.x
- Added explicit `serde` dependency (previously transitive).
- Replaced deprecated `serde_yaml` 0.9 with `yaml_serde` 0.10 (the official
  YAML-org maintained fork, published as crate `yaml_serde`, aliased to
  `serde_yaml` in source via the `package` attribute). Drop-in API.
- `toml` held at 0.8 (1.x available; deferred to avoid semver churn here).

### Build / packaging

- Renamed `.cargo/config``.cargo/config.toml` (removes deprecation warning).
- Corrected `repository`/`homepage`/`documentation` URLs in `Cargo.toml` to
  point at the live repo.
- Added `keywords` and `categories` for crates.io discoverability.
- Fixed `install-cbor-deb.sh` printing an empty architecture in its final
  message (undefined `$arch``$deb_arch`).

### Documentation

- Rewrote `README.md`: usage-oriented structure, CDN output table, library
  section, standards references, streaming/multi-format examples.
- Fixed stale relative paths in `examples/test.sh` left over from the
  pre-0.5.0 monorepo layout.

### QA pass

- **Library functions no longer call `process::exit`.** `import_from_reader`,
  `export_from_reader`, and `inspect_from_reader` now return `anyhow::Result`
  so callers can recover from errors. CLI error handling uses
  `anyhow::Context` to attach file paths.
- **Removed `traits` module** (`WriteStr` trait) — unnecessary abstraction
  for a single `println!` call site.
- **`get_missing_files` accepts `&[PathBuf]`** instead of `&Vec<PathBuf>`.
- **Removed `get_path_str`** — panicked on non-UTF-8 paths. Inlined
  `to_string_lossy()` at call sites.
- **Flattened `get_format_by_file_extension`** with `and_then` chaining.
- **Added `.yml` extension support** for YAML auto-detection.
- **`--pretty` flag** on `export` for human-readable JSON output.
- **Proper delimiter unescaping**`\n`, `\t`, `\r`, `\0`, `\\` are now
  interpreted via a single-pass loop instead of `str::replace`.
- **Verbose output** (`-v`, `-vv`) now writes to stderr instead of stdout.
- **Replaced `common-testing` dev-dependency** with standard Rust test
  assertions and table-driven tests. Fixed a flaky missing-files test by
  using `tempfile`.
- **Added 16 integration tests** (`tests/cli_tests.rs`) covering roundtrips,
  stdin, multi-file, custom delimiters, YAML document separators,
  `--pretty`, error cases, `.yml` detection, and delimiter unescaping.

## v0.5.0

- Removed monorepo/workspace to comply with Homebrew standards.

## v0.4.0

- Added tests and improved README.