tmd/Cargo.toml

54 lines
1.9 KiB
TOML

[package]
name = "tmd"
version = "0.1.0"
authors = ["James Martin <james@jtmar.me>"]
edition = "2018"
repository = "https://github.com/jamestmartin/tmd"
license = "GPL-3.0+"
publish = false
[features]
default = ["authentication", "compression", "encryption"]
# Enables authentication via Mojang's servers, i.e. online mode.
authentication = ["encryption", "num-bigint", "sha-1", "reqwest"]
# Enables protocol compression.
compression = ["flate2"]
# Enables protocol encryption *without enabling authentication*.
#
# The protocol itself doesn't depend on authentication to use encryption.
# If the client and server both simply *don't* check in with Mojang,
# then the protocol will proceed as normal, but encrypted.
# However, be warned that there is no way to disable authentication
# for Notchian clients (they will disconnect you from the server),
# so a modified client would be necessary
# to use offline encryption, and none exist that I know of.
encryption = ["aes", "cfb8", "rand", "rsa"]
[dependencies]
async-trait = "0.1.42"
clap = { version = "2.33.3", features = ["yaml"] }
serde = { version = "1.0.118", features = ["derive"] }
serde_json = "1.0.61"
take_mut = "0.2.2"
tokio = { version = "1.0.1", features = ["io-util", "macros", "net", "rt", "rt-multi-thread"] }
uuid = { version = "0.8.1", features = ["serde"] }
# Dependencies required for authentication
# Used to format Minecraft's "server id" hash.
num-bigint = { version = "0.3.1", optional = true }
sha-1 = { version = "0.9.2", optional = true }
# Used to make the request to the Mojang servers.
reqwest = { version = "0.11.0", optional = true }
# Dependencies required for compression
flate2 = { version = "1.0.19", optional = true }
# Dependencies required for encryption
aes = { version = "0.6.0", optional = true }
cfb8 = { version = "0.6.0", optional = true }
rand = { version = "0.8.1", optional = true }
rsa = { version = "0.3.0", optional = true }