-
Notifications
You must be signed in to change notification settings - Fork 4
/
Cargo.toml
119 lines (98 loc) · 2.95 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
[package]
authors = ["Simone Cottini <[email protected]>"]
categories = ["rust-patterns", "web-programming", "asynchronous", "data-structures"]
description = "A Prima.it-opinionated library to achieve cqrs/es"
edition = "2018"
keywords = ["architecture", "ddd", "event-sourcing", "cqrs", "es"]
license = "MIT OR Apache-2.0"
name = "esrs"
readme = "README.md"
repository = "https://github.com/primait/event_sourcing.rs"
rust-version = "1.81.0"
version = "0.18.0"
[package.metadata.docs.rs]
all-features = true
[features]
default = []
postgres = ["sqlx", "sqlx/postgres", "typed-builder", "tokio"]
rebuilder = []
kafka = ["rdkafka", "typed-builder"]
rabbit = ["lapin", "typed-builder"]
upcasting = []
[dependencies]
tokio = { version = "1.6", optional = true }
# Serialization/Deserialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
# Uuid generation
uuid = { version = "1.6", features = ["serde", "v4", "v7"] }
# Time esrs-core
chrono = { version = "0.4", features = ["serde"] }
# Build async trait
async-trait = "0.1.50"
# Self-referential structs (for PgStoreLockGuard)
ouroboros = "0.18"
# Sql library for async impl
sqlx = { version = "0.8.0", features = ["runtime-tokio-native-tls", "uuid", "json", "chrono"], optional = true }
# Kafka library
rdkafka = { version = "0.35.*", features = ["ssl-vendored"], optional = true }
# Rabbit library
lapin = { version = "2.1.1", optional = true }
# Builder pattern
typed-builder = { version = "0.20.0", optional = true }
bb8 = "0.8.1"
# To stream over sqlx results
futures = "0.3"
tracing = "0.1"
thiserror = "1.0"
[dev-dependencies]
tokio = { version = "1.6", features = ["full"] }
rand = "0.8"
[[example]]
name = "aggregate_deletion"
path = "examples/aggregate_deletion/main.rs"
required-features = ["postgres"]
[[example]]
name = "event_bus"
path = "examples/event_bus/main.rs"
required-features = ["postgres", "rabbit", "kafka"]
[[example]]
name = "eventual_view"
path = "examples/eventual_view/main.rs"
required-features = ["postgres"]
[[example]]
name = "locking_strategies"
path = "examples/locking_strategies/main.rs"
required-features = ["postgres"]
[[example]]
name = "multi_aggregate_rebuild"
path = "examples/multi_aggregate_rebuild/main.rs"
required-features = ["postgres"]
[[example]]
name = "readme"
path = "examples/readme/main.rs"
required-features = ["postgres"]
[[example]]
name = "rebuilder"
path = "examples/rebuilder/main.rs"
required-features = ["rebuilder", "postgres"]
[[example]]
name = "saga"
path = "examples/saga/main.rs"
required-features = ["postgres"]
[[example]]
name = "shared_view"
path = "examples/shared_view/main.rs"
required-features = ["postgres"]
[[example]]
name = "store_crud"
path = "examples/store_crud/main.rs"
required-features = ["postgres"]
[[example]]
name = "transactional_view"
path = "examples/transactional_view/main.rs"
required-features = ["postgres"]
[[example]]
name = "upcasting"
path = "examples/upcasting/main.rs"
required-features = ["postgres", "upcasting"]