espipe 0.2.0

A minimalist command-line utility to pipe documents from a file or I/O stream into an Elasticsearch cluster.
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.2.0] - 2026-04-20

### Added

- Added a RawValue-based document pipeline to preserve NDJSON records without reparsing and reserializing them during output.
- Added optional localhost Elasticsearch integration coverage and file-output integration tests.
- Added localhost benchmark coverage, including generated nginx access log fixtures for manual benchmarking.
- Added crates.io publication metadata including homepage, documentation, keywords, categories, and curated package contents.
- Added an Apache-2.0 `LICENSE.md`.
- Added publish-focused documentation and installation guidance.

### Changed

- Reworked Elasticsearch bulk output handling around the RawValue pipeline and updated the CLI/output path to use it.
- Improved bulk ingestion resilience with retry handling for HTTP `429 Too Many Requests`.
- Fixed CLI authentication and argument validation issues discovered during the `0.2.0` development cycle.
- Switched the crate license from `AGPL-3.0` to `Apache-2.0`.
- Removed the public library target so the crate is documented and shipped as a CLI-only package.
- Upgraded dependency versions across the crate for the publication pass.

## [0.1.3] - 2026-01-28

### Added

- Added bulk action selection for Elasticsearch outputs with support for `create`, `index`, and `update`.
- Added update-mode validation requiring a string `_id` on each document.
- Added dev-dependency support for expanded test coverage.

### Changed

- Upgraded to the `elasticsearch` `9.1.0-alpha.1` client.
- Updated `fluent-uri` and other crate dependencies.

## [0.1.2] - 2026-01-28

### Changed

- Moved the crate to Rust edition 2024.
- Declared a minimum supported Rust version of `1.88`.
- Normalized dependency requirements to caret constraints.

## [0.1.1] - 2024-12-26

### Changed

- Upgraded to the newer `elasticsearch` `8.17.0-alpha.1` client.
- Removed the temporary crates.io patch override once gzip request compression support was available in the upstream client.

## [0.1.0] - 2024-11-26

### Added

- Initial release of `espipe` as a command-line bulk ingestion tool for Elasticsearch.
- Added NDJSON file and `stdin` ingestion support.
- Added multithreaded Elasticsearch bulk output handling.
- Added optional request body gzip compression support.
- Added CSV input support with row-to-JSON conversion.
- Added project metadata including description, repository, license, and README documentation.