-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCargo.toml
149 lines (118 loc) · 3.6 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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
[workspace]
members = [
".",
"rorm-db",
"rorm-declaration",
"rorm-macro",
"rorm-macro-impl",
"rorm-sql",
"example-forum-server",
]
[package]
name = "rorm"
version = "0.6.4"
edition = "2021"
repository = "https://github.com/rorm-orm/rorm"
authors = ["gammelalf", "myOmikron <[email protected]>"]
categories = ["database"]
keywords = ["database", "orm", "async"]
description = "A asynchronous declarative ORM written in pure rust."
homepage = "https://rorm.rs"
documentation = "https://docs.rorm.rs"
license = "MIT"
[lib]
name = "rorm"
path = "src/lib.rs"
[dependencies]
# Logging facade
tracing = "~0.1"
# Basic traits and types required for async
futures-core = "~0.3" # Used for the stream trait
# json serialization to communicate with the migrator
serde_json = { version = "~1" }
serde = { version = "~1" }
# Macro using linker magic to collect items from different code locations into a slice
linkme = { version = "~0.3" } # Used to collect all models declared by any crate part of the final binary
# Macro implemeting pin-projection
pin-project = { version = "~1" } # Used to wrap futures and streams which are !Unpin
rorm-db = { version = "~0.9", path = "./rorm-db", features = ["serde"] }
rorm-macro = { version = ">=0.8.2", path = "./rorm-macro" }
rorm-declaration = { version = "~0.4", path = "./rorm-declaration" }
# rorm-cli exposes interfaces to integrate the cli as library
rorm-cli = { version = "~0.8", path = "./rorm-cli", default-features = false, optional = true }
# Mac address support (postgres-only)
mac_address = { version = "~1", optional = true }
# Bitvec support (postgres-only)
bit-vec = { version = "~0.6", optional = true }
# Ip network support (postgres-only)
ipnetwork = { version = "~0.20", optional = true }
# Date and time support
chrono = { version = ">=0.4.20", default-features = false, optional = true }
time = { version = "~0.3", optional = true }
# Uuid support
uuid = { version = "~1", optional = true }
# Url support
url = { version = "~2", optional = true }
# `MessagePack<T>` support
rmp-serde = { version = "~1", optional = true }
# `ToSchema` support for `MaxStr`
utoipa = { version = "~4", optional = true }
# `JsonSchema` support for `MaxStr`
schemars = { version = "~0.8", optional = true }
[build-dependencies]
rustc_version = "0.4.0"
[package.metadata.docs.rs]
features = ["msgpack", "cli", "tokio"]
[features]
default = [
"all-drivers",
"chrono",
"time",
"uuid",
"url",
]
# Drivers
all-drivers = [
"rorm-db/postgres",
"rorm-cli?/postgres",
"rorm-db/mysql",
"rorm-cli?/mysql",
"rorm-db/sqlite",
"rorm-cli?/sqlite",
]
postgres-only = [
"rorm-db/postgres-only",
"rorm-cli?/postgres",
"dep:mac_address",
"dep:ipnetwork",
"dep:bit-vec",
]
# Extensions
chrono = ["dep:chrono"]
time = ["dep:time"]
uuid = ["dep:uuid"]
url = ["dep:url"]
utoipa = ["dep:utoipa"]
schemars = ["dep:schemars"]
msgpack = ["dep:rmp-serde"]
cli = ["dep:rorm-cli"]
# TLS libraries
rustls = ["rorm-db/rustls"]
native-tls = ["rorm-db/native-tls"]
[profile.release-lto]
inherits = "release"
lto = "fat"
[profile.release-debug]
inherits = "release"
debug = true
[dev-dependencies]
rorm = { path = "." }
rorm-macro-impl = { path = "./rorm-macro-impl" }
proc-macro2 = { version = "~1" }
syn = { version = "~2" } # Parse files, search for derives and format the expansion with prettyplease
prettyplease = { version = "~0.2" } # Simple code formatter taking syn as input
trybuild = { version = "~1" } # Compiles a single rust file
datatest-stable = { version = "~0.3" } # Test harness which generates cases from files
[[test]]
name = "derives"
harness = false