rkyv 0.8.9

Zero-copy deserialization framework for Rust
Documentation
[package]

name = "rkyv"

description = "Zero-copy deserialization framework for Rust"

version.workspace = true

edition.workspace = true

rust-version.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-0_7 = { package = "arrayvec", version = "0.7", optional = true, default-features = false }

bytes-1 = { package = "bytes", version = "1", optional = true, default-features = false }

hashbrown-0_14 = { package = "hashbrown", version = "0.14", optional = true, default-features = false }

# rkyv already depends on hashbrown 0.15, so we can't duplicate this, but we can expose it as a feature below

# hashbrown-0_15 = { package = "hashbrown", version = "0.15", optional = true, default-features = false }

indexmap-2 = { package = "indexmap", version = "2", optional = true, default-features = false }

smallvec-1 = { package = "smallvec", version = "1", optional = true, default-features = false }

smol_str-0_2 = { package = "smol_str", version = "0.2", optional = true, default-features = false }

smol_str-0_3 = { package = "smol_str", version = "0.3", optional = true, default-features = false }

thin-vec-0_2 = { package = "thin-vec", version = "0.2.12", optional = true, default-features = false }

tinyvec-1 = { package = "tinyvec", version = "1", optional = true, default-features = false }

triomphe-0_1 = { package = "triomphe", version = "0.1", optional = true, default-features = false }

uuid-1 = { package = "uuid", version = "1", 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-1?/alloc", "rancor/alloc"]

std = ["alloc", "bytes-1?/std", "indexmap-2?/std", "ptr_meta/std", "uuid-1?/std"]

bytecheck = ["dep:bytecheck", "rend/bytecheck", "rkyv_derive/bytecheck"]



# External crate support

hashbrown-0_15 = ["dep:hashbrown"]

indexmap-2 = ["dep:indexmap-2", "alloc"]

triomphe-0_1 = ["dep:triomphe-0_1", "alloc"]

uuid-1 = ["dep:uuid-1", "bytecheck?/uuid-1"]



[package.metadata.docs.rs]

features = ["bytecheck"]



[dev-dependencies]

ahash = "0.8"

benchlib = { path = "../benchlib" }

divan.workspace = true

rustversion.workspace = true

trybuild.workspace = true



[[bench]]

name = "log"

harness = false



[[bench]]

name = "mesh"

harness = false



[[bench]]

name = "minecraft_savedata"

harness = false