specta 2.0.0-rc.20

Easily export your Rust types to other languages
Documentation
[package]
name = "specta"
description = "Easily export your Rust types to other languages"
version = "2.0.0-rc.20"
authors = ["Oscar Beaumont <oscar@otbeaumont.me>"]
edition = "2021"
license = "MIT"
include = ["/src", "/examples", "/LICENCE", "/README.md"]
repository = "https://github.com/oscartbeaumont/specta"
documentation = "https://docs.rs/specta/latest/specta"
keywords = ["async", "specta", "rspc", "typescript", "typesafe"]
categories = ["web-programming", "asynchronous"]

# /bin/sh RUSTDOCFLAGS="--cfg docsrs" cargo +nightly doc --all-features
[package.metadata."docs.rs"]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

# Run `node ./.github/features.js` to update the docs
[features]
default = []

## Derive macros
derive = ["dep:specta-macros"]

#! Features
## Support for exporting the types of Rust functions.
function = ["specta-macros?/DO_NOT_USE_function", "dep:paste"]

#! Compatability
## Support for [serde](https://serde.rs)
serde = ["dep:serde"]
## Support for [serde-json](https://github.com/serde-rs/json)
serde_json = ["dep:serde_json"]
## Support for [serde_yaml](https://github.com/dtolnay/serde-yaml)
serde_yaml = ["dep:serde_yaml"]
## Support for [toml](https://github.com/toml-rs/toml)
toml = ["dep:toml"]

#! External types
## [uuid](https://docs.rs/uuid) crate
uuid = ["dep:uuid"]
## [uuid](https://docs.rs/ulid) crate
ulid = ["dep:ulid"]
## [chrono](https://docs.rs/chrono) crate
chrono = ["dep:chrono"]
## [time](https://docs.rs/time) crate
time = ["dep:time"]
## [bigdecimal](https://docs.rs/bigdecimal) crate
bigdecimal = ["dep:bigdecimal"]
## [rust_decimal](https://docs.rs/rust_decimal) crate
rust_decimal = ["dep:rust_decimal"]
## [indexmap](https://docs.rs/indexmap) crate
indexmap = ["dep:indexmap"]
## [ipnetwork](https://docs.rs/ipnetwork) crate
ipnetwork = ["dep:ipnetwork"]
## [mac_address](https://docs.rs/mac_address) crate
mac_address = ["dep:mac_address"]
## [bit-vec](https://docs.rs/bit-vec) crate
bit-vec = ["dep:bit-vec"]
## [bson](https://docs.rs/bson) crate
bson = ["dep:bson"]
## [uhlc](https://docs.rs/uhlc) crate
uhlc = ["dep:uhlc"]
## [bytesize](https://docs.rs/bytesize) crate
bytesize = ["dep:bytesize"]
## [glam](https://docs.rs/glam) crate
glam = ["dep:glam"]
## [tokio](https://docs.rs/tokio) crate
tokio = ["dep:tokio"]
## [url](https://docs.rs/url) crate
url = ["dep:url"]
## [either](https://docs.rs/either) crate
either = ["dep:either"]
# [bevy_ecs](https://docs.rs/bevy_ecs) crate
bevy_ecs = ["dep:bevy_ecs"]
# [bevy_input](https://docs.rs/bevy_input) crate
bevy_input = ["dep:bevy_input", "dep:bevy_ecs", "dep:glam"]

# Internal features (unstable)
interop = ["dep:specta1"]

[lints]
workspace = true

[dependencies]
specta-macros = { version = "=2.0.0-rc.17", optional = true, path = "../specta-macros" }
paste = { version = "1", optional = true }
thiserror = "1.0.61"

# TODO: To be deprecated
specta1 = { package = "specta", version = "1", optional = true, default-features = false }
serde = { version = "1.0.204", optional = true, default-features = false, features = ["derive"] }
serde_json = { version = "1.0.120", optional = true, default-features = false, features = ["std"] }
serde_yaml = { version = "0.9.34", optional = true, default-features = false, features = [] }
toml = { version = "0.8.14", optional = true, default-features = false }
ulid = { version = "1.1.2", optional = true, default-features = false, features = [] }
uuid = { version = "1.10.0", optional = true, default-features = false, features = [] }
chrono = { version = "0.4.38", optional = true, default-features = false, features = ["clock"] }
time = { version = "0.3.36", optional = true, default-features = false, features = [] }
bigdecimal = { version = "0.4.5", optional = true, default-features = false, features = [] }
rust_decimal = { version = "1.35.0", optional = true, default-features = false, features = [] }
indexmap = { version = "2.2.6", optional = true, default-features = false, features = ["std"] }     # TODO: Don't require `std`
ipnetwork = { version = "0.20.0", optional = true, default-features = false, features = [] }
mac_address = { version = "1.1.7", optional = true, default-features = false, features = [] }
bit-vec = { version = "0.7.0", optional = true, default-features = false, features = [] }
bson = { version = "2.11.0", optional = true, default-features = false, features = [] }
uhlc = { version = "0.8.0", optional = true, default-features = false, features = [] }
bytesize = { version = "1.3.0", optional = true, default-features = false, features = [] }
glam = { version = "0.28", optional = true, default-features = false, features = ["std"] }
tokio = { version = "1.38", optional = true, default-features = false, features = ["sync"] }
url = { version = "2.5.2", optional = true, default-features = false }
either = { version = "1.13.0", optional = true, default-features = false }
bevy_ecs = { version = "0.14.0", optional = true, default-features = false }
bevy_input = { version = "0.14.0", optional = true, default-features = false }

[dev-dependencies]
serde = { version = "1.0.204", features = ["derive"] } # TODO: Can we remove this?