forked from paperclip-rs/paperclip
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Cargo.toml
99 lines (89 loc) · 3.08 KB
/
Cargo.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
[package]
name = "paperclip"
version = "0.5.0"
authors = ["Ravi Shankar <[email protected]>"]
edition = "2018"
description = "OpenAPI tooling library for type-safe compile-time checked HTTP APIs"
documentation = "https://paperclip.waffles.space/paperclip"
keywords = ["openapi", "api", "swagger", "http", "web"]
license = "MIT OR Apache-2.0"
homepage = "https://github.com/wafflespeanut/paperclip"
repository = "https://github.com/wafflespeanut/paperclip"
readme = "README.md"
build = "src/build/build.rs"
[[bin]]
name = "paperclip"
path = "src/bin/main.rs"
required-features = ["cli"]
[dependencies]
env_logger = { version = "0.8", optional = true }
git2 = { version = "0.13", optional = true }
heck = { version = "0.3", optional = true }
http = { version = "0.2", optional = true }
itertools = "0.9"
log = { version = "0.4", optional = true }
paperclip-actix = { path = "plugins/actix-web", version = "0.3.0", optional = true }
paperclip-core = { path = "core", version = "0.3.0" }
paperclip-macros = { path = "macros", version = "0.4.0", optional = true }
parking_lot = { version = ">=0.10,<0.12" }
regex = { version = "1.3", optional = true }
reqwest = { version = "0.10", features = ["blocking"], optional = true }
semver = ">=0.9, <0.12"
serde = "1.0"
serde_derive = "1.0"
serde_json = "1.0"
serde_yaml = "0.8"
structopt = { version = "0.3", optional = true }
tinytemplate = { version = "1.1", optional = true }
url = ">=1.7,<3"
thiserror = "1.0"
anyhow = "1.0"
once_cell = "1.4"
[dev-dependencies]
actix-rt = "1"
actix-service = "1"
actix-web = { version = "3", default-features = false }
chrono_dev = { version = "0.4", features = ["serde"], package = "chrono" }
futures = "0.3"
uuid_dev = { version = "0.8", features = ["serde"], package = "uuid" }
reqwest = { version = "0.10", features = ["blocking", "json"] }
log = { version = "0.4", features = ["kv_unstable"] }
insta = "1.0"
env_logger = "0.8"
[features]
# actix-web support
actix = ["actix3"]
actix-nightly = ["actix3-nightly"]
actix3-nightly = ["actix3", "paperclip-actix/nightly"]
actix2-nightly = ["actix2", "paperclip-actix/nightly"]
actix2 = ["actix-base", "paperclip-actix/actix2"]
actix3 = ["actix-base", "paperclip-actix/actix3"]
actix-base = ["v2", "paperclip-macros/actix"]
# OpenAPI support (v2 and codegen)
cli = ["env_logger", "structopt", "git2", "v2", "codegen"]
codegen = ["heck", "http", "log", "regex", "tinytemplate", "paperclip-core/codegen"]
v2 = ["paperclip-macros/v2", "paperclip-core/v2"]
# Features for implementing traits for dependencies.
actix-multipart = ["paperclip-core/actix-multipart"]
actix-session = ["paperclip-core/actix-session"]
actix-files = ["paperclip-core/actix-files"]
chrono = ["paperclip-core/chrono"]
rust_decimal = ["paperclip-core/rust_decimal"]
uuid = ["paperclip-core/uuid"]
serde_qs = ["paperclip-core/serde_qs"]
[workspace]
members = [
".",
"core",
"macros",
"plugins/actix-web",
]
[[test]]
name = "test_codegen"
required-features = ["v2", "codegen"]
[[test]]
name = "test_errors"
required-features = ["v2", "codegen"]
[[test]]
name = "test_app"
required-features = ["cli", "actix", "uuid", "chrono"]