forked from smartive/zitadel-rust
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Cargo.toml
93 lines (81 loc) · 3.86 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
[package]
name = "zitadel"
description = "An implementation of ZITADEL API access and authentication in Rust."
version = "0.0.0-development"
edition = "2021"
license = "MIT OR Apache-2.0"
authors = ["Christoph Bühler <[email protected]>"]
repository = "https://github.com/buehler/zitadel-rust"
keywords = ["ZITADEL", "gRPC", "clients", "authentication", "oidc"]
categories = ["authentication", "api-bindings"]
include = [
"src/**/*.rs",
"Cargo.toml",
"LICENSE*",
"README.md",
]
[features]
default = []
## Feature that enables support for the [actix framework](https://actix.rs/).
actix = ["credentials", "oidc", "dep:actix-web"]
## The API feature enables the gRPC service clients to access the ZITADEL API.
api = ["dep:prost", "dep:prost-types", "dep:tonic", "dep:tonic-types", "dep:pbjson-types"]
## Feature that enables support for the [axum framework](https://docs.rs/axum/latest/axum/).
axum = ["credentials", "oidc", "dep:axum", "dep:axum-extra"]
## The credentials feature enables special credentials helpers for ZITADEL.
## For example, it allows the user to create a ZITADEL service account and
## authenticate against ZITADEL.
credentials = ["dep:jsonwebtoken", "dep:openidconnect", "dep:reqwest", "dep:serde", "dep:serde_json", "dep:serde_urlencoded", "dep:time"]
## The interceptors feature enables specific gRPC interceptors and
## new convenience functions to create a gRPC client with interceptors.
## The interceptors provide easy access to an authenticated ZITADEL API client.
## The interceptors work with the credentials from this crate.
interceptors = ["api", "credentials", "dep:time", "dep:tokio"]
## This feature enables caching of the OIDC discovery and introspection results.
## By default, only the in-memory cache is available. To use a different cache,
## enable specific features of this crate, or implement your own cache with
## the trait.
introspection_cache = ["dep:async-trait", "dep:time"]
## The OIDC module enables basic OIDC (OpenID Connect) features to communicate
## with ZITADEL. Two examples are the `discover` and `introspect` functions.
## The OIDC features are required for some of the web framework features.
oidc = ["credentials", "dep:base64-compat"]
## Feature that enables support for the [rocket framework](https://rocket.rs/).
## It enables authentication features for rocket in the form of route guards.
## Refer to the rocket module for more information.
rocket = ["credentials", "oidc", "dep:rocket"]
[dependencies]
actix-web = { version = "4.5.1", optional = true }
async-trait = { version = "0.1.80", optional = true }
axum = { version = "0.7", optional = true, features = ["macros"] }
axum-extra = { version = "0.9", optional = true, features = ["typed-header"] }
base64-compat = { version = "1", optional = true }
custom_error = "1.9.2"
document-features = { version = "0.2", optional = true }
jsonwebtoken = { version = "9.3.0", optional = true }
openidconnect = { version = "3.5.0", optional = true }
pbjson-types = { version = "0.6", optional = true }
prost = { version = "0.12", optional = true }
prost-types = { version = "0.12", optional = true }
reqwest = { version = "0.11.27", features = ["json", "rustls-tls"], default-features = false, optional = true }
rocket = { version = "0.5.0", optional = true }
serde = { version = "1.0", features = ["derive"], optional = true }
serde_json = { version = "1.0", optional = true }
serde_urlencoded = { version = "0.7.1", optional = true }
time = { version = "0.3.36", optional = true }
tokio = { version = "1", optional = true, features = [
"macros",
"rt-multi-thread",
] }
tonic = { version = "0.11", features = [
"tls",
"tls-roots",
"tls-roots-common",
], optional = true }
tonic-types = { version = "0.11", optional = true }
[dev-dependencies]
chrono = "0.4.38"
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
tower = { version = "0.4.13" }
[package.metadata.docs.rs]
all-features = true