rkyv 0.8.0-rc.1

Zero-copy deserialization framework for Rust
Documentation
[package]
name = "rkyv"
description = "Zero-copy deserialization framework for Rust"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
readme = "../README.md"
repository.workspace = true
keywords = ["archive", "rkyv", "serialization", "zero-copy", "no_std"]
categories = ["encoding", "no-std", "no-std::no-alloc"]
documentation = "https://docs.rs/rkyv"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
bytecheck = { workspace = true, optional = true }
hashbrown = { workspace = true, optional = true }
munge.workspace = true
ptr_meta.workspace = true
rancor.workspace = true
rend.workspace = true
rkyv_derive.workspace = true

# Support for various common crates. These are primarily to get users off the
# ground and build some momentum.

# These are NOT PLANNED to remain in rkyv for the 1.0 release. Much like serde,
# these implementations should be moved into their respective crates over time.
# Before adding support for another crate, please consider getting rkyv support
# in the crate instead.

arrayvec = { version = "0.7", optional = true, default-features = false }
bytes = { version = "1.4.0", optional = true, default-features = false }
# hashbrown
indexmap = { version = "2.2", optional = true, default-features = false }
smallvec = { version = "1.7", optional = true, default-features = false }
smol_str = { version = "0.2", optional = true, default-features = false }
thin-vec = { version = "0.2.12", optional = true, default-features = false }
tinyvec = { version = "1.5", optional = true, default-features = false }
triomphe = { version = "0.1", optional = true, default-features = false }
uuid = { version = "1.3", optional = true, default-features = false }

postgres-types = { version = "0.2", optional = true, default-features = false }
postgres-protocol = { version = "0.6.7", optional = true, default-features = false }

[features]
default = ["std", "bytecheck"]
little_endian = []
big_endian = []
aligned = []
unaligned = []
pointer_width_16 = []
pointer_width_32 = []
pointer_width_64 = []
alloc = ["dep:hashbrown", "tinyvec?/alloc", "rancor/alloc"]
std = ["alloc", "bytecheck?/std", "bytes?/std", "indexmap?/std", "ptr_meta/std", "uuid?/std"]
bytecheck = ["dep:bytecheck", "bytecheck/derive", "rend/bytecheck", "rkyv_derive/bytecheck"]

# External crate support
hashbrown = ["dep:hashbrown"]
indexmap = ["dep:indexmap", "alloc"]
triomphe = ["dep:triomphe", "alloc"]
uuid = ["dep:uuid", "bytecheck?/uuid"]
postgres-types = ["std", "dep:postgres-types", "bytes", "dep:postgres-protocol"]

[package.metadata.docs.rs]
features = ["bytecheck"]

[dev-dependencies]
ahash = "0.8"
benchlib = { path = "../benchlib" }
divan.workspace = true
trybuild.workspace = true

[[bench]]
name = "log"
harness = false

[[bench]]
name = "mesh"
harness = false

[[bench]]
name = "minecraft_savedata"
harness = false