Optimize the WASI random_get implementation. (#4917)

* Optimize the WASI `random_get` implementation.

Use `StdRng` instead of the `OsRng` in the default implementation of
`random_get`. This uses a userspace CSPRNG, making `random_get` 3x faster
in simple benchmarks.

* Update cargo-vet audits for cap-std 0.25.3.

* Update all cap-std packages to 0.25.3.
This commit is contained in:
Dan Gohman
2022-09-16 08:27:06 -07:00
committed by GitHub
parent 27435ae398
commit cbd2efd236
10 changed files with 50 additions and 43 deletions

View File

@@ -15,10 +15,10 @@ include = ["src/**/*", "README.md", "LICENSE" ]
wasi-common = { path = "../", version = "=2.0.0" }
async-trait = "0.1"
anyhow = "1.0"
cap-std = "0.25.0"
cap-fs-ext = "0.25.0"
cap-time-ext = "0.25.0"
cap-rand = "0.25.0"
cap-std = "0.25.3"
cap-fs-ext = "0.25.3"
cap-time-ext = "0.25.3"
cap-rand = "0.25.3"
fs-set-times = "0.17.0"
system-interface = { version = "0.22.0", features = ["cap_std_impls"] }
tracing = "0.1.19"

View File

@@ -141,5 +141,5 @@ impl WasiCtxBuilder {
}
pub fn random_ctx() -> Box<dyn RngCore + Send + Sync> {
Box::new(cap_rand::rngs::OsRng::default(ambient_authority()))
Box::new(cap_rand::std_rng_from_entropy(cap_rand::ambient_authority()))
}