https://github.com/ibraheemdev/papaya
A fast and ergonomic concurrent hashmap for read-heavy workloads.
https://github.com/ibraheemdev/papaya
concurrent hashmap hashtable
Last synced: 10 months ago
JSON representation
A fast and ergonomic concurrent hashmap for read-heavy workloads.
- Host: GitHub
- URL: https://github.com/ibraheemdev/papaya
- Owner: ibraheemdev
- License: mit
- Created: 2023-11-20T05:59:21.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2025-03-14T13:04:40.000Z (12 months ago)
- Last Synced: 2025-04-12T14:53:17.886Z (11 months ago)
- Topics: concurrent, hashmap, hashtable
- Language: Rust
- Homepage:
- Size: 408 KB
- Stars: 696
- Watchers: 4
- Forks: 17
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# `papaya`
[
](https://crates.io/crates/papaya)
[
](https://github.com/ibraheemdev/papaya)
[
](https://docs.rs/papaya)
A fast and ergonomic concurrent hash-table for read-heavy workloads.
See [the documentation](https://docs.rs/papaya/latest) to get started.
## Features
- An ergonomic lock-free API — no more deadlocks!
- Powerful atomic operations.
- Seamless usage in async contexts.
- Extremely scalable, low-latency reads (see [performance](#performance)).
- Predictable latency across all operations.
- Efficient memory usage, with garbage collection powered by [`seize`].
## Performance
`papaya` is built with read-heavy workloads in mind. As such, read operations are extremely high throughput and provide consistent performance that scales with concurrency, meaning `papaya` will excel in workloads where reads are more common than writes. In write heavy workloads, `papaya` will still provide competitive performance despite not being it's primary use case. See the [benchmarks] for details.
`papaya` aims to provide predictable and consistent latency across all operations. Most operations are lock-free, and those that aren't only block under rare and constrained conditions. `papaya` also features [incremental resizing]. Predictable latency is an important part of performance that doesn't often show up in benchmarks, but has significant implications for real-world usage.
[benchmarks]: ./BENCHMARKS.md
[`seize`]: https://github.com/ibraheemdev/seize
[incremental resizing]: https://docs.rs/papaya/latest/papaya/enum.ResizeMode.html