Skip to content

Latest commit

 

History

History
48 lines (35 loc) · 3.68 KB

CHANGELOG.md

File metadata and controls

48 lines (35 loc) · 3.68 KB

Changelog

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

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

v0.3.0 - 2024-04-28

Breaking

  • Bump Minimum Supported Rust Version from 1.56 to 1.75.
  • Get rid of async-trait. Rust 1.75 included support for async fn in traits, and ultra-batch now uses this instead of the async-trait crate. This means all impls of Fetcher should no longer use the #[async_trait] macro.
  • Rename Batcher to BatchFetcher.
  • Update BatchFetcherBuilder::label() to take an Into<Cow<'static, str>> instead of Into<String>. This makes it cheaper to clone BatchFetcher, since cloning a static string is now much cheaper.

Added

  • Added BatchExecutor type and Executor trait. These types are similar to BatchFetcher and Fetcher, but are more suitable for database mutations (such as bulk inserts/deletes), or for cases where you want more fine-grained control over how fetching works.

Changed

  • Remove some unnecessary associated type bounds on Fetcher::Error.

v0.2.0 - 2022-02-15

Breaking

  • Upgrade from Tokio 0.2.x to Tokio 1.0.x (#1). Thanks to @maldrake for contributing this change!
  • Rename Batcher::new(/* ... */).build() to Batcher::build(/* ... */).finish(). These new function names are meant to be more idiomatic, and additionally silence a Clipping warning in the project.
  • Bump the Minimum Supported Rust Version to v1.56. The MSRV wasn't tracked previously, but ultra-batch did previously work as far back as Rust 1.45.0. Future changes to the MSRV will be documented in the Changelog going forward.

Changed

  • Switch from log to Tracing crate for logging. For compatibility, the log feature of ultra-batch can be enabled. This uses the log feature of Tracing, so see the Tracing docs on the log feature for more details.

v0.1.1 - 2020-08-20

Added

  • Implement logging using Rust's log crate. If you're using env_logger or slog-envlogger, then you can output logs in your app by setting the environment variable RUST_LOG=ultra_batch=debug or RUST_LOG=ultra_batch=trace.
  • Add BatcherBuilder.label method to set a label when building a Batcher. Currently, this is used for clearer log messages and panic messages when working with multiple Batchers.

Changed

  • Use chashmap::CHashMap to cache values (rather than a tokio::sync::RwLock<HashMap<K, V>>). CHashMap has a very similar interface to a standard HashMap, except it's designed for use in concurrent contexts without needing an explict lock. In practice, this seems to reduce lock contention.

v0.1.0 - 2020-08-16

Added

  • Initial release!