[package] name = "specta" description = "Easily export your Rust types to other languages" version = "2.0.0-rc.20" authors = ["Oscar Beaumont "] 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?