mirror of
https://gitlab.com/famedly/conduit.git
synced 2024-12-27 04:53:50 +03:00
b6e755f67e
The average german man has a life expectancy of 78.7 years, or 689884.2 hours. Assuming that Timo is 20 years old, he has rougly 514564.2 hours left on planet earth. Also assuming that cross release builds took him 25 minutes before, but 2-2.5x of that with the current release compilation config he wasted roughly an hour waiting for it to complete. If he continued to work on Conduit for 20 more years (or 175320 hours), and makes a release compilation about once per day, this means 7305 hours or 304 days wasted waiting for the rust compiler. By cutting that back down to the original settings, he get's 182 days of his life back. That's about 0.63% of his remaining life. 182 joyful days he can spend with family and loved ones.
138 lines
5.2 KiB
TOML
138 lines
5.2 KiB
TOML
[package]
|
|
name = "conduit"
|
|
description = "A Matrix homeserver written in Rust"
|
|
license = "Apache-2.0"
|
|
authors = ["timokoesters <timo@koesters.xyz>"]
|
|
homepage = "https://conduit.rs"
|
|
repository = "https://gitlab.com/famedly/conduit"
|
|
readme = "README.md"
|
|
version = "0.1.0"
|
|
edition = "2018"
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
[dependencies]
|
|
# Used to handle requests
|
|
# TODO: This can become optional as soon as proper configs are supported
|
|
# rocket = { git = "https://github.com/SergioBenitez/Rocket.git", rev = "801e04bd5369eb39e126c75f6d11e1e9597304d8", features = ["tls"] } # Used to handle requests
|
|
rocket = { version = "0.5.0-rc.1", features = ["tls"] } # Used to handle requests
|
|
|
|
# Used for matrix spec type definitions and helpers
|
|
ruma = { git = "https://github.com/ruma/ruma", rev = "f5ab038e22421ed338396ece977b6b2844772ced", features = ["compat", "rand", "appservice-api-c", "client-api", "federation-api", "push-gateway-api-c", "state-res", "unstable-pre-spec", "unstable-exhaustive-types"] }
|
|
#ruma = { git = "https://github.com/timokoesters/ruma", rev = "995ccea20f5f6d4a8fb22041749ed4de22fa1b6a", features = ["compat", "rand", "appservice-api-c", "client-api", "federation-api", "push-gateway-api-c", "state-res", "unstable-pre-spec", "unstable-exhaustive-types"] }
|
|
#ruma = { path = "../ruma/crates/ruma", features = ["compat", "rand", "appservice-api-c", "client-api", "federation-api", "push-gateway-api-c", "state-res", "unstable-pre-spec", "unstable-exhaustive-types"] }
|
|
|
|
# Used for long polling and federation sender, should be the same as rocket::tokio
|
|
tokio = "1.8.2"
|
|
# Used for storing data permanently
|
|
sled = { version = "0.34.6", features = ["compression", "no_metrics"], optional = true }
|
|
#sled = { git = "https://github.com/spacejam/sled.git", rev = "e4640e0773595229f398438886f19bca6f7326a2", features = ["compression"] }
|
|
|
|
# Used for the http request / response body type for Ruma endpoints used with reqwest
|
|
bytes = "1.0.1"
|
|
# Used for rocket<->ruma conversions
|
|
http = "0.2.4"
|
|
# Used to find data directory for default db path
|
|
directories = "3.0.2"
|
|
# Used for ruma wrapper
|
|
serde_json = { version = "1.0.64", features = ["raw_value"] }
|
|
# Used for appservice registration files
|
|
serde_yaml = "0.8.17"
|
|
# Used for pdu definition
|
|
serde = "1.0.126"
|
|
# Used for secure identifiers
|
|
rand = "0.8.4"
|
|
# Used to hash passwords
|
|
rust-argon2 = "0.8.3"
|
|
# Used to send requests
|
|
reqwest = { version = "0.11.4", default-features = false, features = ["rustls-tls-native-roots", "socks"] }
|
|
# Custom TLS verifier
|
|
rustls = { version = "0.19.1", features = ["dangerous_configuration"] }
|
|
rustls-native-certs = "0.5.0"
|
|
webpki = "0.21.0"
|
|
# Used for conduit::Error type
|
|
thiserror = "1.0.26"
|
|
# Used to generate thumbnails for images
|
|
image = { version = "0.23.14", default-features = false, features = ["jpeg", "png", "gif"] }
|
|
# Used to encode server public key
|
|
base64 = "0.13.0"
|
|
# Used when hashing the state
|
|
ring = "0.16.20"
|
|
# Used when querying the SRV record of other servers
|
|
trust-dns-resolver = "0.20.3"
|
|
# Used to find matching events for appservices
|
|
regex = "1.5.4"
|
|
# jwt jsonwebtokens
|
|
jsonwebtoken = "7.2.0"
|
|
# Performance measurements
|
|
tracing = { version = "0.1.26", features = ["release_max_level_warn"] }
|
|
tracing-subscriber = "0.2.19"
|
|
tracing-opentelemetry = "0.14.0"
|
|
tracing-flame = "0.1.0"
|
|
opentelemetry = { version = "0.16.0", features = ["rt-tokio"] }
|
|
opentelemetry-jaeger = { version = "0.15.0", features = ["rt-tokio"] }
|
|
pretty_env_logger = "0.4.0"
|
|
lru-cache = "0.1.2"
|
|
rusqlite = { version = "0.25.3", optional = true, features = ["bundled"] }
|
|
parking_lot = { version = "0.11.1", optional = true }
|
|
crossbeam = { version = "0.8.1", optional = true }
|
|
num_cpus = "1.13.0"
|
|
threadpool = "1.8.1"
|
|
heed = { git = "https://github.com/timokoesters/heed.git", rev = "f6f825da7fb2c758867e05ad973ef800a6fe1d5d", optional = true }
|
|
|
|
[features]
|
|
default = ["conduit_bin", "backend_sqlite"]
|
|
backend_sled = ["sled"]
|
|
backend_sqlite = ["sqlite"]
|
|
backend_heed = ["heed", "crossbeam"]
|
|
sqlite = ["rusqlite", "parking_lot", "crossbeam", "tokio/signal"]
|
|
conduit_bin = [] # TODO: add rocket to this when it is optional
|
|
|
|
[[bin]]
|
|
name = "conduit"
|
|
path = "src/main.rs"
|
|
required-features = ["conduit_bin"]
|
|
|
|
[lib]
|
|
name = "conduit"
|
|
path = "src/lib.rs"
|
|
|
|
[package.metadata.deb]
|
|
name = "matrix-conduit"
|
|
maintainer = "Paul van Tilburg <paul@luon.net>"
|
|
copyright = "2020, Timo Kösters <timo@koesters.xyz>"
|
|
license-file = ["LICENSE", "3"]
|
|
depends = "$auto, ca-certificates"
|
|
extended-description = """\
|
|
A fast Matrix homeserver that is optimized for smaller, personal servers, \
|
|
instead of a server that has high scalability."""
|
|
section = "net"
|
|
priority = "optional"
|
|
assets = [
|
|
["debian/README.Debian", "usr/share/doc/matrix-conduit/", "644"],
|
|
["README.md", "usr/share/doc/matrix-conduit/", "644"],
|
|
["target/release/conduit", "usr/sbin/matrix-conduit", "755"],
|
|
]
|
|
conf-files = [
|
|
"/etc/matrix-conduit/conduit.toml"
|
|
]
|
|
maintainer-scripts = "debian/"
|
|
systemd-units = { unit-name = "matrix-conduit" }
|
|
|
|
[profile.dev]
|
|
lto = 'thin'
|
|
incremental = true
|
|
|
|
[profile.release]
|
|
lto = 'thin'
|
|
incremental = true
|
|
|
|
codegen-units=32
|
|
# If you want to make flamegraphs, enable debug info:
|
|
# debug = true
|
|
|
|
# For releases also try to max optimizations for dependencies:
|
|
[profile.release.build-override]
|
|
opt-level = 3
|
|
[profile.release.package."*"]
|
|
opt-level = 3
|