| 1 | [package] |
| 2 | name = "getrandom" |
| 3 | version = "0.3.2" |
| 4 | edition = "2021" |
| 5 | rust-version = "1.63" # Sync tests.yml and README.md. |
| 6 | authors = ["The Rand Project Developers" ] |
| 7 | license = "MIT OR Apache-2.0" |
| 8 | description = "A small cross-platform library for retrieving random data from system source" |
| 9 | documentation = "https://docs.rs/getrandom" |
| 10 | repository = "https://github.com/rust-random/getrandom" |
| 11 | categories = ["os" , "no-std" ] |
| 12 | exclude = [".*" ] |
| 13 | |
| 14 | [features] |
| 15 | # Implement std::error::Error for getrandom::Error and |
| 16 | # use std to retrieve OS error descriptions |
| 17 | std = [] |
| 18 | # Unstable feature to support being a libstd dependency |
| 19 | rustc-dep-of-std = ["dep:compiler_builtins" , "dep:core" ] |
| 20 | |
| 21 | # Optional backend: wasm_js |
| 22 | # This flag enables the backend but does not select it. To use the backend, use |
| 23 | # this flag *and* set getrandom_backend=wasm_js (see README). |
| 24 | wasm_js = ["dep:wasm-bindgen" , "dep:js-sys" ] |
| 25 | |
| 26 | [dependencies] |
| 27 | cfg-if = "1" |
| 28 | |
| 29 | # When built as part of libstd |
| 30 | compiler_builtins = { version = "0.1" , optional = true } |
| 31 | core = { version = "1.0" , optional = true, package = "rustc-std-workspace-core" } |
| 32 | |
| 33 | # getrandom / linux_android_with_fallback |
| 34 | [target.'cfg(all(any(target_os = "linux", target_os = "android"), not(any(all(target_os = "linux", target_env = ""), getrandom_backend = "custom", getrandom_backend = "linux_raw", getrandom_backend = "rdrand", getrandom_backend = "rndr"))))'.dependencies] |
| 35 | libc = { version = "0.2.154" , default-features = false } |
| 36 | |
| 37 | # apple-other |
| 38 | [target.'cfg(any(target_os = "ios", target_os = "visionos", target_os = "watchos", target_os = "tvos"))'.dependencies] |
| 39 | libc = { version = "0.2.154" , default-features = false } |
| 40 | |
| 41 | # efi_rng |
| 42 | [target.'cfg(all(target_os = "uefi", getrandom_backend = "efi_rng"))'.dependencies] |
| 43 | r-efi = { version = "5.1" , default-features = false } |
| 44 | |
| 45 | # getentropy |
| 46 | [target.'cfg(any(target_os = "macos", target_os = "openbsd", target_os = "vita", target_os = "emscripten"))'.dependencies] |
| 47 | libc = { version = "0.2.154" , default-features = false } |
| 48 | |
| 49 | # getrandom |
| 50 | [target.'cfg(any(target_os = "dragonfly", target_os = "freebsd", target_os = "hurd", target_os = "illumos", target_os = "cygwin", all(target_os = "horizon", target_arch = "arm")))'.dependencies] |
| 51 | libc = { version = "0.2.154" , default-features = false } |
| 52 | |
| 53 | # netbsd |
| 54 | [target.'cfg(target_os = "netbsd")'.dependencies] |
| 55 | libc = { version = "0.2.154" , default-features = false } |
| 56 | |
| 57 | # solaris |
| 58 | [target.'cfg(target_os = "solaris")'.dependencies] |
| 59 | libc = { version = "0.2.154" , default-features = false } |
| 60 | |
| 61 | # use_file |
| 62 | [target.'cfg(any(target_os = "haiku", target_os = "redox", target_os = "nto", target_os = "aix"))'.dependencies] |
| 63 | libc = { version = "0.2.154" , default-features = false } |
| 64 | |
| 65 | # vxworks |
| 66 | [target.'cfg(target_os = "vxworks")'.dependencies] |
| 67 | libc = { version = "0.2.154" , default-features = false } |
| 68 | |
| 69 | # wasi (0.2 only) |
| 70 | [target.'cfg(all(target_arch = "wasm32", target_os = "wasi", target_env = "p2"))'.dependencies] |
| 71 | wasi = { version = "0.14" , default-features = false } |
| 72 | |
| 73 | # wasm_js |
| 74 | [target.'cfg(all(target_arch = "wasm32", any(target_os = "unknown", target_os = "none")))'.dependencies] |
| 75 | wasm-bindgen = { version = "0.2.98" , default-features = false, optional = true } |
| 76 | [target.'cfg(all(target_arch = "wasm32", any(target_os = "unknown", target_os = "none"), target_feature = "atomics"))'.dependencies] |
| 77 | js-sys = { version = "0.3.77" , default-features = false, optional = true } |
| 78 | [target.'cfg(all(target_arch = "wasm32", any(target_os = "unknown", target_os = "none")))'.dev-dependencies] |
| 79 | wasm-bindgen-test = "0.3" |
| 80 | |
| 81 | [lints.rust.unexpected_cfgs] |
| 82 | level = "warn" |
| 83 | check-cfg = [ |
| 84 | 'cfg(getrandom_backend, values("custom", "efi_rng", "rdrand", "rndr", "linux_getrandom", "linux_raw", "wasm_js"))' , |
| 85 | 'cfg(getrandom_msan)' , |
| 86 | 'cfg(getrandom_windows_legacy)' , |
| 87 | 'cfg(getrandom_test_linux_fallback)' , |
| 88 | 'cfg(getrandom_test_linux_without_fallback)' , |
| 89 | 'cfg(getrandom_test_netbsd_fallback)' , |
| 90 | 'cfg(target_os, values("cygwin"))' , # TODO(MSRV 1.86): Remove this. |
| 91 | ] |
| 92 | |
| 93 | [package.metadata.docs.rs] |
| 94 | features = ["std" ] |
| 95 | |
| 96 | # workaround for https://github.com/cross-rs/cross/issues/1345 |
| 97 | [package.metadata.cross.target.x86_64-unknown-netbsd] |
| 98 | pre-build = [ |
| 99 | "mkdir -p /tmp/netbsd" , |
| 100 | "curl -fO https://cdn.netbsd.org/pub/NetBSD/NetBSD-9.3/amd64/binary/sets/base.tar.xz" , |
| 101 | "tar -C /tmp/netbsd -xJf base.tar.xz" , |
| 102 | "cp /tmp/netbsd/usr/lib/libexecinfo.so /usr/local/x86_64-unknown-netbsd/lib" , |
| 103 | "rm base.tar.xz" , |
| 104 | "rm -rf /tmp/netbsd" , |
| 105 | ] |
| 106 | |