[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 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [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.46", path = "../rkyv_derive" } seahash = "4.0" # 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 final 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. 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"]