| Crates.io | r2d2-alpm |
| lib.rs | r2d2-alpm |
| version | 0.2.1 |
| created_at | 2022-02-17 03:31:17.208157+00 |
| updated_at | 2024-09-14 22:48:06.2586+00 |
| description | R2D2 resource pools for managing ALPM connections. |
| homepage | |
| repository | https://github.com/fosskers/aura |
| max_upload_size | |
| id | 533764 |
| size | 5,815 |
Types and utilities for the spawing of a r2d2::Pool that handles
multiple connections to an Arch Linux Alpm database.
To create a Pool that delegates Alpm connections within (for instance)
some Rayon threads:
use r2d2::Pool;
use r2d2_alpm::AlpmManager;
use rayon::prelude::*;
let mngr = AlpmManager::from_file("/etc/pacman.conf").unwrap();
let pool = Pool::builder().max_size(4).build(mngr).unwrap();
(0..10).into_par_iter().for_each(|n| {
// `Pool::get` will wait for a configurable length
// of time for a free connection before giving up.
if let Ok(alpm) = pool.get() {
// Use the ALPM handle freely here.
}
});
Like std::sync::Arc, Pool is cheap to Clone, and can be passed
around freely to subthreads.
License: MIT