[package]
name = "specta"
description = "Easily export your Rust types to other languages"
version = "1.0.5"
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"]
autotests = false
[package.metadata."docs.rs"]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[[test]]
name = "integration_tests"
path = "tests/lib.rs"
harness = true
[[example]]
name = "export"
required-features = ["export"]
[features]
default = ["serde", "typescript"]
functions = ["serde", "specta-macros/functions"]
export = ["dep:ctor", "specta-macros/export"]
serde = ["specta-macros/serde", "dep:serde_json"]
tauri = ["dep:tauri"]
typescript = []
uuid = ["dep:uuid"]
chrono = ["dep:chrono"]
time = ["dep:time"]
bigdecimal = ["dep:bigdecimal"]
rust_decimal = ["dep:rust_decimal"]
indexmap = ["dep:indexmap"]
ipnetwork = ["dep:ipnetwork"]
mac_address = ["dep:mac_address"]
bit-vec = ["dep:bit-vec"]
bson = ["dep:bson"]
uhlc = ["dep:uhlc"]
bytesize = ["dep:bytesize"]
glam = ["dep:glam"]
tokio = ["dep:tokio"]
url = ["dep:url"]
[dependencies]
specta-macros = { version = "1.0.5", path = "./macros" }
serde = { version = "1.0.147", features = ["derive"] }
serde_json = { version = "1.0.87", optional = true, default-features = false, features = ["std"] }
uuid = { version = "1.2.1", optional = true, default-features = false, features = [] }
chrono = { version = "0.4.23", optional = true, default-features = false, features = ["clock"] }
time = { version = "0.3.17", optional = true, default-features = false, features = [] }
bigdecimal = { version = "0.3.0", optional = true, default-features = false, features = [] }
rust_decimal = { version = "1.26.1", optional = true, default-features = false, features = [] }
indexmap = { version = "1.9.1", optional = true, default-features = false, features = [] }
ipnetwork = { version = "0.20.0", optional = true, default-features = false, features = [] }
mac_address = { version = "1.1.4", optional = true, default-features = false, features = [] }
bit-vec = { version = "0.6.3", optional = true, default-features = false, features = [] }
bson = { version = "2.4.0", optional = true, default-features = false, features = [] }
openapiv3 = { version = "1.0.1", optional = true, default-features = false, features = [] }
uhlc = { version = "0.5.1", optional = true, default-features = false, features = [] }
tauri = { version = "1.2.1", optional = true, default-features = false, features = [] }
bytesize = { version = "1.1.0", optional = true, default-features = false, features = [] }
glam = { version = "0.22", optional = true, default-features = false, features = ["std"] }
tokio = { version = "1.25", optional = true, default-features = false, features = ["sync"] }
url = { version = "2.3.1", optional = true, default-features = false }
paste = "1.0.9"
document-features = "0.2.6"
ctor = { version = "0.1.26", optional = true }
once_cell = "1.16.0"
indoc = "1.0.8"
thiserror = "1.0.38"
[dev-dependencies]
doc-comment = "0.3.3"
serde = { version = "1.0.147", features = ["derive"] }
trybuild = "1.0.77"