windmark 0.8.0

An elegant and highly performant async Gemini server framework
Documentation
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[workspace]
members = ["rossweisse"]

[package]
autotests = false
name = "windmark"
version = "0.8.0"
authors = ["Fuwn <contact@fuwn.me>"]
edition = "2021"
description = "An elegant and highly performant async Gemini server framework"
documentation = "https://docs.rs/windmark"
readme = "README.md"
homepage = "https://github.com/gemrest/windmark"
repository = "https://github.com/gemrest/windmark"
license = "MIT OR Apache-2.0"
keywords = ["gemini"]
categories = ["web-programming"]

[features]
default = ["tokio"]
auto-deduce-mime = ["tree_magic_mini"]
tokio = ["dep:tokio", "tokio-openssl"]
async-std = ["dep:async-std", "async-std-openssl"]

[dependencies]
# SSL
openssl = "0.10.80"
tokio-openssl = { version = "0.6.3", optional = true }
async-std-openssl = { version = "0.6.3", optional = true }

# Non-blocking I/O
tokio = { version = "1.52.3", default-features = false, features = [
  "rt-multi-thread",
  "sync",
  "net",
  "io-util",
  "macros",
  "signal",
  "time",
], optional = true }
async-trait = "0.1.68"
futures-util = "0.3.31"
async-std = { version = "1.12.0", features = ["attributes"], optional = true }

# Logging
log = "0.4.30"

# URL
url = "2.2.2"
matchit = "0.7.3"
mime = "0.3.17"
language-tags = "0.3.2"

tree_magic_mini = { version = "3.2.2", optional = true } # MIME

[dev-dependencies]
pretty_env_logger = "0.5.0"
rossweisse = { version = "0.0.4", path = "./rossweisse" }

[package.metadata.docs.rs]
# `tokio` and `async-std` are mutually exclusive, so document the default
# (`tokio`) runtime alongside the optional feature surface.
all-features = false
features = ["auto-deduce-mime"]

[[example]]
name = "simple_async_std"
required-features = ["async-std"]

# Private unit-test modules also live in tests, so integration targets are explicit.
[[test]]
name = "binary_response"

[[test]]
name = "consumer"

[[test]]
name = "router_runtime"

[[test]]
name = "module"

[[test]]
name = "response"