[package]
name = "native_model"
version = "0.6.1"
authors = ["Vincent Herlemont <vincent@herlemont.fr>"]
edition = "2021"
description = "A thin wrapper around serialized data which add information of identity and version."
license = "MIT"
repository = "https://github.com/vincent-herlemont/native_model"
readme = "README.md"
keywords = ["serialization", "interoperability", "data-consistency", "flexibility", "performance"]
categories = ["data-structures", "encoding", "rust-patterns"]
rust-version = "1.73.0"

[workspace]
members = ["native_model_macro"]

[dependencies]
zerocopy = { version = "0.8.0", features = [ "derive"] }
thiserror = "2.0.0"
anyhow = "1.0.82"
native_model_macro = { version = "0.6.1", path = "native_model_macro" }

serde = { version = "1.0.200", features = ["derive"], optional = true }
bincode_1_3 = { package = "bincode", version = "1.3.3", optional = true }
bincode_2_rc = { package = "bincode", version = "2.0.0-rc.3", features = ["serde"], optional = true }
postcard_1_0 = { package = "postcard", version = "1.0.8", features = ["alloc"], optional = true }
rmp_serde_1_3 = { package = "rmp-serde", version = "1.3", optional = true }
doc-comment = "0.3.3"

[dev-dependencies]
serde_json = "1.0.116"
criterion = { version = "0.5.1" }

[features]
default = ["serde", "bincode_1_3"]

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