# Copyright 2018 The Fuchsia Authors # # Licensed under a BSD-style license , Apache License, Version 2.0 # , or the MIT # license , 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 = "2018" name = "zerocopy" version = "0.7.32" authors = ["Joshua Liebow-Feeser "] description = "Utilities for zero-copy parsing and serialization" license = "BSD-2-Clause OR Apache-2.0 OR MIT" repository = "https://github.com/google/zerocopy" rust-version = "1.60.0" exclude = [".*"] [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "doc_cfg", "--generate-link-to-definition"] [package.metadata.ci] # The versions of the stable and nightly compiler toolchains to use in CI. pinned-stable = "1.74.0" pinned-nightly = "nightly-2023-12-05" [package.metadata.playground] features = ["__internal_use_only_features_that_work_on_stable"] [features] default = ["byteorder"] alloc = [] derive = ["zerocopy-derive"] simd = [] simd-nightly = ["simd"] # 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"] [dependencies] zerocopy-derive = { version = "=0.7.32", path = "zerocopy-derive", optional = true } [dependencies.byteorder] version = "1.3" default-features = false 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.7.32", path = "zerocopy-derive" } [dev-dependencies] assert_matches = "1.5" itertools = "0.11" rand = { version = "0.8.5", features = ["small_rng"] } rustversion = "1.0" static_assertions = "1.1" testutil = { path = "testutil" } # Pinned to a specific version so that the version used for local development # and the version used in CI are guaranteed to be the same. Future versions # sometimes change the output format slightly, so a version mismatch can cause # CI test failures. trybuild = { version = "=1.0.85", features = ["diff"] } # In tests, unlike in production, zerocopy-derive is not optional zerocopy-derive = { version = "=0.7.32", path = "zerocopy-derive" } # TODO(#381) Remove this dependency once we have our own layout gadgets. elain = "0.3.0"