Skip to content

nullmonger/carpool

Repository files navigation

carpool

Deduplicate and batch concurrent async requests. Many concurrent load(input) calls are merged within a collection window into a single downstream batch, and duplicate inputs share one result. No cache, trait-based API, built on tokio.

Status

Pre-release. The crate is built and released feature by feature; nothing is published yet.

  • transit - the waiting primitive underneath everything else: Ride (an ordered set of waiters with exact membership) and Logue (a keyed router over rides). First release.
  • Deduplicator - single-flight per input over a user-implemented Fetcher; a flight lives while at least one caller is still waiting.
  • Batcher - collection-window batching over a user-implemented BatchCollector, with an input-addressed result contract.
  • Loader - deduplication in front of batching.
  • Metrics - instrumentation of windows, batches, and flights.
  • Tracing - OpenTelemetry spans linked to individual load calls.

An earlier prototype of the whole stack lives on the draft branch. Installation and usage will be documented as features are released.

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.

About

No description, website, or topics provided.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

Generated from nerjs/rust-template