[package]
name = "actix-server"
version = "2.3.0"
authors = [
    "Nikolay Kim <fafhrd91@gmail.com>",
    "Rob Ede <robjtede@icloud.com>",
    "Ali MJ Al-Nasrawy <alimjalnasrawy@gmail.com>",
]
description = "General purpose TCP server built for the Actix ecosystem"
keywords = ["network", "tcp", "server", "framework", "async"]
categories = ["network-programming", "asynchronous"]
homepage = "https://actix.rs"
repository = "https://github.com/actix/actix-net/tree/master/actix-server"
license = "MIT OR Apache-2.0"
edition.workspace = true
rust-version.workspace = true

[package.metadata.cargo_check_external_types]
allowed_external_types = [
    "tokio::*",
]

[features]
default = []
io-uring = ["tokio-uring", "actix-rt/io-uring"]

[dependencies]
actix-rt = { version = "2.8", default-features = false }
actix-service = "2"
actix-utils = "3"

futures-core = { version = "0.3.17", default-features = false, features = ["alloc"] }
futures-util = { version = "0.3.17", default-features = false, features = ["alloc"] }
mio = { version = "0.8", features = ["os-poll", "net"] }
socket2 = "0.5"
tokio = { version = "1.23.1", features = ["sync"] }
tracing = { version = "0.1.30", default-features = false, features = ["log"] }

# runtime for `io-uring` feature
[target.'cfg(target_os = "linux")'.dependencies]
tokio-uring = { version = "0.4", optional = true }

[dev-dependencies]
actix-codec = "0.5"
actix-rt = "2.8"

bytes = "1"
env_logger = "0.10"
futures-util = { version = "0.3.17", default-features = false, features = ["sink", "async-await-macro"] }
tokio = { version = "1.23.1", features = ["io-util", "rt-multi-thread", "macros", "fs"] }