# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
rust-version = "1.13"
name = "serde"
version = "1.0.137"
authors = [
    "Erick Tryzelaar <erick.tryzelaar@gmail.com>",
    "David Tolnay <dtolnay@gmail.com>",
]
build = "build.rs"
include = [
    "build.rs",
    "src/**/*.rs",
    "crates-io.md",
    "README.md",
    "LICENSE-APACHE",
    "LICENSE-MIT",
]
description = "A generic serialization/deserialization framework"
homepage = "https://serde.rs"
documentation = "https://docs.serde.rs/serde/"
readme = "crates-io.md"
keywords = [
    "serde",
    "serialization",
    "no_std",
]
categories = ["encoding"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/serde-rs/serde"

[package.metadata.playground]
features = [
    "derive",
    "rc",
]

[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]

[dependencies.serde_derive]
version = "=1.0.137"
optional = true

[dev-dependencies.serde_derive]
version = "1.0"

[features]
alloc = []
default = ["std"]
derive = ["serde_derive"]
rc = []
std = []
unstable = []
