aboutsummaryrefslogtreecommitdiff
path: root/Cargo.toml
blob: e337cf093f139b9e4a271fe8d5710ed61641bf70 (plain)
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
[package]
name = "libquassel"
description = "Native rust implementation of the Quassel protocol and library functions"
version = "0.1.0"
authors = ["Max Audron <audron@cocaine.farm>"]
license = "ISC"
homepage = "https://gitlab.com/cocainefarm/libquassel"
repository = "https://gitlab.com/cocainefarm/libquassel"
edition = "2021"
autobins = true
include = ["src/**/*", "LICENSE", "README.md"]

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
log = "0.4"
byteorder = "1.3.2"
time = { version = "0.3", features = ["macros", "parsing", "local-offset"] }

thiserror = "2"

num-traits = "0.2"
num-derive = "0.4"

bitflags = "2"

itertools = "0.14"

crossbeam-channel = "0.5"
once_cell = "1"

libquassel-derive = { path = "./derive" }

bytes = { version = "1.0", optional = true }
flate2 = { version = "1.0", optional = true }
tokio = { version = "1", features = [], optional = true }
tokio-util = { version = "0.7", features = ["codec"], optional = true }

[features]
framing = ["tokio", "tokio-util", "flate2", "bytes"]

# Enable all the quassel features
all-quassel-features = [
    "long-message-id",
    "long-time",
    "rich-messages",
    "sender-prefixes",
    "authenticators",
]

# Either act as a client or a server
client = []
server = []

# Serialize message IDs as i64
long-message-id = []
# Serialize Message Time as i64
long-time = []
# Add avatar url and real name to messages
rich-messages = []
# Show prefixes for senders in backlog
sender-prefixes = []
# Support for exchangeable auth backends
authenticators = []

# Enable the test crate/feature for running benchmarks
bench = []

default = ["all-quassel-features", "client"]

[package.metadata.docs.rs]
# document all features
all-features = true
# defines the configuration attribute `docsrs`
rustdoc-args = ["--cfg", "docsrs"]

[dev-dependencies]
futures = { version = "0.3" }
# flate2 = { version = "1.0", features = ["tokio"] }
# tokio = { version = "0.3", features = ["full"] }
# tokio-util = { version = "0.5", features = ["codec"] }
tokio-test = { version = "0.4" }
pretty_assertions = "1"

[workspace]
members = ["derive"]