-
Notifications
You must be signed in to change notification settings - Fork 143
Expand file tree
/
Copy pathCargo.toml
More file actions
132 lines (113 loc) · 5.02 KB
/
Cargo.toml
File metadata and controls
132 lines (113 loc) · 5.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# Copyright 2018 The Fuchsia Authors
#
# Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
# <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
# license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
# This file may not be copied, modified, or distributed except according to
# those terms.
# Put both crates in a single workspace so that `trybuild` compiler errors have
# paths that are stable regardless of the path to the repository root. This
# avoids issues like:
# https://github.com/dtolnay/trybuild/issues/207#issuecomment-131227.594
[workspace]
[package]
edition = "2021"
name = "zerocopy"
version = "0.8.43"
authors = [
"Joshua Liebow-Feeser <joshlf@google.com>",
"Jack Wrenn <jswrenn@amazon.com>",
]
description = "Zerocopy makes zero-cost memory manipulation effortless. We write \"unsafe\" so you don't have to."
categories = [
"embedded",
"encoding",
"no-std::no-alloc",
"parsing",
"rust-patterns",
]
keywords = ["cast", "convert", "transmute", "transmutation", "type-punning"]
license = "BSD-2-Clause OR Apache-2.0 OR MIT"
repository = "https://github.com/google/zerocopy"
rust-version = "1.56.0"
exclude = [".*"]
[package.metadata.build-rs]
# These key/value pairs are parsed by `build.rs`. Each entry names a `--cfg`
# which will be emitted if zerocopy is built with a toolchain version *lower*
# than the specified version. In the emitted `--cfg`, dashes are replaced by
# underscores.
#
# Each name is suffixed with the version it corresponds to. This is a convention
# used in the codebase to make it less likely for us to make mistakes when
# writing `doc_cfg` attributes.
#
# It may seem odd to name cfgs `no-zerocopy-foo` and emit these cfgs on
# toolchains lower than that target toolchain. We do this because it is
# friendlier to users who compile zerocopy by directly invoking rustc or by
# invoking rustc from a build system other than Cargo. If such a user provides
# no `--cfg` arguments, then, assuming they are on a sufficiently recent
# toolchain, everything will "just work" without requiring extra configuration.
# See [1] for an example of a user upgrading from a version of zerocopy which
# did things in the inverse way. See #2259 for more context.
#
# [1] https://fuchsia-review.googlesource.com/c/fuchsia/+/1433139/1/third_party/rust_crates/Cargo.toml
# From 1.89.0, Rust supports x86 AVX-12 SIMD types (previously gated by the
# `stdarch_x86_avx512` feature).
no-zerocopy-simd-x86-avx12-1-89-0 = "1.89.0"
# From 1.81.0, Rust supports the `core::error::Error` trait.
no-zerocopy-core-error-1-81-0 = "1.81.0"
# From 1.78.0, Rust supports the `#[diagnostic::on_unimplemented]` attribute.
no-zerocopy-diagnostic-on-unimplemented-1-78-0 = "1.78.0"
# From 1.61.0, Rust supports generic types with trait bounds in `const fn`.
no-zerocopy-generic-bounds-in-const-fn-1-61-0 = "1.61.0"
# From 1.60.0, Rust supports `cfg(target_has_atomics)`, which allows us to
# detect whether a target supports particular sets of atomics.
no-zerocopy-target-has-atomics-1-60-0 = "1.60.0"
# When the "simd" feature is enabled, include SIMD types from the
# `core::arch::aarch64` module, which was stabilized in 1.59.0. On earlier Rust
# versions, these types require the "simd-nightly" feature.
no-zerocopy-aarch64-simd-1-59-0 = "1.59.0"
# Permit panicking in `const fn`s and calling `Vec::try_reserve`.
no-zerocopy-panic-in-const-and-vec-try-reserve-1-57-0 = "1.57.0"
[package.metadata.ci]
# The versions of the stable and nightly compiler toolchains to use in CI.
pinned-stable = "1.93.1"
pinned-nightly = "nightly-2026-01-25"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "doc_cfg", "--generate-link-to-definition", "--extend-css", "rustdoc/style.css"]
[package.metadata.playground]
features = ["__internal_use_only_features_that_work_on_stable"]
[features]
alloc = []
derive = ["zerocopy-derive"]
simd = []
simd-nightly = ["simd"]
float-nightly = []
std = ["alloc"]
# This feature depends on all other features that work on the stable compiler.
# We make no stability guarantees about this feature; it may be modified or
# removed at any time.
__internal_use_only_features_that_work_on_stable = [
"alloc",
"derive",
"simd",
"std",
]
[dependencies]
zerocopy-derive = { version = "=0.8.43", path = "zerocopy-derive", optional = true }
# The "associated proc macro pattern" ensures that the versions of zerocopy and
# zerocopy-derive remain equal, even if the 'derive' feature isn't used.
# See: https://github.com/matklad/macro-dep-test
[target.'cfg(any())'.dependencies]
zerocopy-derive = { version = "=0.8.43", path = "zerocopy-derive" }
[dev-dependencies]
# FIXME(#381) Remove this dependency once we have our own layout gadgets.
elain = "0.3.0"
itertools = "0.11"
rand = { version = "0.8.5", default-features = false, features = ["small_rng"] }
rustversion = "1.0"
static_assertions = "1.1"
testutil = { path = "testutil" }
# In tests, unlike in production, zerocopy-derive is not optional
zerocopy-derive = { version = "=0.8.43", path = "zerocopy-derive" }