1[package]
2name = "getrandom"
3version = "0.2.16" # Also update html_root_url in lib.rs when bumping this
4edition = "2018"
5authors = ["The Rand Project Developers"]
6license = "MIT OR Apache-2.0"
7description = "A small cross-platform library for retrieving random data from system source"
8documentation = "https://docs.rs/getrandom"
9repository = "https://github.com/rust-random/getrandom"
10categories = ["os", "no-std"]
11exclude = [".*"]
12
13[dependencies]
14cfg-if = "1"
15
16# When built as part of libstd
17compiler_builtins = { version = "0.1", optional = true }
18core = { version = "1.0", optional = true, package = "rustc-std-workspace-core" }
19
20[target.'cfg(unix)'.dependencies]
21libc = { version = "0.2.154", default-features = false }
22
23[target.'cfg(target_os = "wasi")'.dependencies]
24wasi = { version = "0.11", default-features = false }
25
26[target.'cfg(all(any(target_arch = "wasm32", target_arch = "wasm64"), target_os = "unknown"))'.dependencies]
27wasm-bindgen = { version = "0.2.62", default-features = false, optional = true }
28js-sys = { version = "0.3", optional = true }
29[target.'cfg(all(any(target_arch = "wasm32", target_arch = "wasm64"), target_os = "unknown"))'.dev-dependencies]
30wasm-bindgen-test = "0.3.18"
31
32[features]
33# Implement std-only traits for getrandom::Error
34std = []
35# Disable `/dev/urandom` fallback for Linux and Android targets.
36# Bumps minimum supported Linux kernel version to 3.17 and Android API level to 23 (Marshmallow).
37linux_disable_fallback = []
38# Feature to enable fallback RDRAND-based implementation on x86/x86_64
39rdrand = []
40# Feature to enable JavaScript bindings on wasm*-unknown-unknown
41js = ["wasm-bindgen", "js-sys"]
42# Feature to enable custom RNG implementations
43custom = []
44# Unstable feature to support being a libstd dependency
45rustc-dep-of-std = [
46 "compiler_builtins",
47 "core",
48 "libc/rustc-dep-of-std",
49 "wasi/rustc-dep-of-std",
50]
51# Unstable/test-only feature to run wasm-bindgen tests in a browser
52test-in-browser = []
53
54[package.metadata.docs.rs]
55features = ["std", "custom"]
56rustdoc-args = ["--cfg", "docsrs"]
57
58# workaround for https://github.com/cross-rs/cross/issues/1345
59[package.metadata.cross.target.x86_64-unknown-netbsd]
60pre-build = [
61 "mkdir -p /tmp/netbsd",
62 "curl https://cdn.netbsd.org/pub/NetBSD/NetBSD-9.2/amd64/binary/sets/base.tar.xz -O",
63 "tar -C /tmp/netbsd -xJf base.tar.xz",
64 "cp /tmp/netbsd/usr/lib/libexecinfo.so /usr/local/x86_64-unknown-netbsd/lib",
65 "rm base.tar.xz",
66 "rm -rf /tmp/netbsd",
67]
68