[package] name = "mitra" version = "1.12.0" description = "Federated micro-blogging platform and content subscription service" license = "AGPL-3.0" edition = "2021" rust-version = "1.56" publish = false default-run = "mitra" [workspace] members = [ ".", "mitra-cli", ] default-members = [ ".", "mitra-cli", ] [dependencies] # Used to handle incoming HTTP requests actix-cors = "0.6.2" actix-files = "0.6.2" actix-web = "4.1.0" actix-web-httpauth = "0.8.0" # Used for HTML sanitization ammonia = "3.2.0" # Used for catching errors anyhow = "1.0.58" # Used for working with RSA keys, HTTP signatures and file uploads base64 = "0.13.0" # Used to decode base58btc bs58 = "0.4.0" # Used for working with dates chrono = { version = "0.4.23", default-features = false, features = ["std", "serde"] } # Used for parsing markdown comrak = { version = "0.15.0", default-features = false } # Used for pooling database connections deadpool = "0.9.2" deadpool-postgres = { version = "0.10.2", default-features = false } # Used to read .env files dotenv = "0.15.0" # Used to work with hexadecimal strings hex = { version = "0.4.3", features = ["serde"] } # Used for logging log = { version = "0.4.14", features = ["serde"] } env_logger = { version = "0.9.0", default-features = false } # Used to verify minisign signatures ed25519-dalek = "1.0.1" ed25519 = "1.5.2" blake2 = "0.10.5" # Used to guess media type of a file mime_guess = "2.0.3" mime-sniffer = "0.1.2" # Used to query Monero node monero-rpc = "0.3.2" # Used to determine the number of CPUs on the system num_cpus = "1.13.0" # Used for working with regular expressions regex = "1.6.0" # Used to generate random numbers rand = "0.8.4" # Used for managing database migrations refinery = { version = "0.8.4", features = ["tokio-postgres"] } # Used for making async HTTP requests reqwest = { version = "0.11.10", features = ["json", "multipart", "socks"] } # Used for working with RSA keys rsa = "0.5.0" pem = "1.0.2" # Used for hashing passwords rust-argon2 = "1.0.0" # Used for working with ethereum keys secp256k1 = { version = "0.21.3", features = ["rand", "rand-std"] } # Used for serialization/deserialization serde = { version = "1.0.136", features = ["derive"] } serde_json = "1.0.89" # Used to create JCS representations serde_jcs = "0.1.0" # Used to parse config file serde_yaml = "0.8.17" # Used to calculate SHA2 hashes sha2 = "0.9.5" # Used to verify EIP-4361 signatures siwe = "0.4.0" # Used for creating error types thiserror = "1.0.37" # Async runtime tokio = { version = "1.17.0", features = ["macros"] } # Used for working with Postgresql database tokio-postgres = { version = "0.7.6", features = ["with-chrono-0_4", "with-uuid-1", "with-serde_json-1"] } postgres-types = { version = "0.2.3", features = ["derive", "with-chrono-0_4", "with-uuid-1", "with-serde_json-1"] } postgres-protocol = "0.6.4" # Used to construct PostgreSQL queries postgres_query = { git = "https://github.com/nolanderc/rust-postgres-query", rev = "b4422051c8a31fbba4a35f88004c1cefb1878dd5" } postgres_query_macro = { git = "https://github.com/nolanderc/rust-postgres-query", rev = "b4422051c8a31fbba4a35f88004c1cefb1878dd5" } # Used to work with URLs url = "2.2.2" # Used to generate lexicographically sortable IDs ulid = { version = "1.0.0", features = ["uuid"] } # Used to work with UUIDs uuid = { version = "1.1.2", features = ["serde", "v4"] } # Used to query ethereum node web3 = { version = "0.18.0", default-features = false, features = ["http", "http-tls", "signing"] } [dev-dependencies] rand = { version = "0.8.4", features = ["small_rng"] } serial_test = "0.7.0" [features] production = []