-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
78 lines (70 loc) · 3.24 KB
/
Copy pathCargo.toml
File metadata and controls
78 lines (70 loc) · 3.24 KB
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
[package]
name = "everscribe"
version = "0.1.1"
edition = "2021"
rust-version = "1.85"
license = "MIT"
description = "Rust SDK for the Everscribe audit-log API"
repository = "https://github.com/everscribe/sdk-rust"
readme = "README.md"
keywords = ["everscribe", "audit-log", "audit", "sdk"]
categories = ["api-bindings"]
# docs.rs builds with default features unless told otherwise, and every
# adapter here is optional. Without this the published docs show the core
# recorder and nothing else: no EverscribeLayer, no CurrentEvent, no actix
# or tonic. docsrs lets gated items carry a "Available on crate feature"
# badge via cfg_attr.
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[dependencies]
serde = { version = "1", features = ["derive"] }
serde_json = "1"
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] }
tokio = { version = "1", features = ["rt", "sync", "time", "macros"] }
uuid = { version = "1", features = ["v4"] }
chrono = { version = "0.4", default-features = false, features = ["clock", "serde", "std"] }
thiserror = "1"
log = "0.4"
# Optional: the axum / tower middleware adapter, behind the `axum` feature.
axum = { version = "0.7", optional = true }
tower = { version = "0.5", optional = true }
http = { version = "1", optional = true }
# Optional: the actix-web adapter, behind the `actix` feature. actix-web pulls
# in the `http` crate at 0.2, not the 1.x the axum/tonic features use, so it
# is kept as its own optional dependency rather than shared.
actix-web = { version = "4", optional = true, default-features = false }
# Optional: the tonic / tower gRPC adapter, behind the `tonic` feature.
# default-features = false: the adapter itself only needs tonic's core
# Status/Code/body::Body types (all unconditionally compiled, not behind any
# tonic feature), not its transport/server/client machinery - that stays a
# test-only concern in dev-dependencies, so a consumer that only wants the
# tower Layer does not also pull in hyper, h2, and friends transitively.
tonic = { version = "0.14", optional = true, default-features = false }
http-body = { version = "1", optional = true }
[features]
axum = ["dep:axum", "dep:tower", "dep:http"]
actix = ["dep:actix-web"]
tonic = ["dep:tonic", "dep:tower", "dep:http", "dep:http-body", "dep:tonic-prost-build"]
[build-dependencies]
# Only used to compile tests/proto/echo.proto for the tonic adapter's own
# integration tests (a real server over a real channel); see build.rs, which
# is cfg-gated on the `tonic` feature so `protoc` is never required to build
# this crate without it. tonic 0.13+ split protobuf-specific codegen out of
# tonic-build into this crate.
tonic-prost-build = { version = "0.14", optional = true }
[dev-dependencies]
tokio = { version = "1", features = ["rt-multi-thread", "macros", "time", "sync"] }
wiremock = "0.6"
axum = "0.7"
tower = { version = "0.5", features = ["util"] }
http = "1"
actix-web = "4"
tonic = { version = "0.14", features = ["transport", "codegen"] }
# The runtime half of the same split: tonic-build/tonic-prost-build generate
# code that references tonic_prost::ProstCodec directly.
tonic-prost = "0.14"
prost = "0.14"
async-stream = "0.3"
futures-core = "0.3"
tokio-stream = { version = "0.1", features = ["net"] }