# 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]
edition = "2018"
name = "platforms"
version = "3.3.0"
authors = [
    "Tony Arcieri <bascule@gmail.com>",
    "Sergey \"Shnatsel\" Davidoff <shnatsel@gmail.com>",
]
exclude = [
    "platforms-data-gen/",
    "markdown-table-gen/",
    "README.header.md",
    "platform-support.md",
    "regenerate-platforms-crate.sh",
]
description = """
Rust platform registry with information about valid Rust platforms (target
triple, target_arch, target_os) sourced from the Rust compiler.
"""
homepage = "https://rustsec.org"
readme = "README.md"
keywords = [
    "architectures",
    "cpu",
    "os",
    "targets",
    "triples",
]
categories = [
    "development-tools",
    "no-std",
]
license = "Apache-2.0 OR MIT"
repository = "https://github.com/rustsec/rustsec/tree/main/platforms"

[dependencies.serde]
version = "1"
optional = true

[features]
default = ["std"]
std = []
