[package]
name = "rkyv"
description = "Zero-copy deserialization framework for Rust"
keywords = ["archive", "rkyv", "serialization", "zero-copy", "no_std"]
categories = ["encoding", "no-std"]
readme = "crates-io.md"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
[dependencies]
bytecheck = { workspace = true, optional = true }
hashbrown = { version = "0.12", optional = true }
ptr_meta = { workspace = true, default-features = false }
rend = { version = "0.4", optional = true, default-features = false }
rkyv_derive = { version = "=0.7.44", path = "../rkyv_derive" }
seahash = "4.0"
bitvec = { version = "1.0", optional = true, default-features = false }
indexmap = { version = "1.7", optional = true, default-features = false }
smallvec = { version = "1.7", optional = true, default-features = false }
smol_str = { version = "0.2", optional = true, default-features = false }
arrayvec = { version = "0.7", optional = true, default-features = false }
tinyvec = { version = "1.5", optional = true, default-features = false }
uuid = { version = "1.3", optional = true, default-features = false }
bytes = { version = "1.4.0", optional = true, default-features = false }
[features]
default = ["size_32", "std"]
alloc = ["hashbrown", "bitvec?/alloc", "tinyvec?/alloc"]
arbitrary_enum_discriminant = ["rkyv_derive/arbitrary_enum_discriminant"]
archive_be = ["rend", "rkyv_derive/archive_be"]
archive_le = ["rend", "rkyv_derive/archive_le"]
copy = ["rkyv_derive/copy"]
copy_unsafe = []
size_16 = []
size_32 = []
size_64 = []
std = ["alloc", "bytecheck?/std", "ptr_meta/std", "rend?/std", "uuid?/std", "bytes?/std"]
strict = ["rkyv_derive/strict"]
uuid = ["dep:uuid", "bytecheck?/uuid"]
validation = ["alloc", "bytecheck", "rend/validation"]
[package.metadata.docs.rs]
features = ["validation"]