[package] name = "roa" version = "0.6.1" authors = ["Hexilee "] edition = "2018" license = "MIT" readme = "./README.md" repository = "https://github.com/Hexilee/roa" documentation = "https://docs.rs/roa" homepage = "https://github.com/Hexilee/roa/wiki" description = """ async web framework inspired by koajs, lightweight but powerful. """ keywords = ["http", "web", "framework", "async"] categories = ["network-programming", "asynchronous", "web-programming::http-server"] [package.metadata.docs.rs] features = ["docs"] rustdoc-args = ["--cfg", "feature=\"docs\""] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [badges] codecov = { repository = "Hexilee/roa" } [dependencies] tracing = { version = "0.1", features = ["log"] } futures = "0.3" bytesize = "1.0" async-trait = "0.1.51" url = "2.2" percent-encoding = "2.1" bytes = "1.1" headers = "0.3" tokio = "1.15" tokio-util = { version = "0.6.9", features = ["io"] } once_cell = "1.8" hyper = { version = "0.14", default-features = false, features = ["stream", "server", "http1", "http2"] } roa-core = { path = "../roa-core", version = "0.6" } cookie = { version = "0.15", features = ["percent-encode"], optional = true } jsonwebtoken = { version = "7.2", optional = true } serde = { version = "1", optional = true } serde_json = { version = "1.0", optional = true } async-compression = { version = "0.3.8", features = ["all-algorithms", "futures-io"], optional = true } # router radix_trie = { version = "0.2.1", optional = true } regex = { version = "1.5", optional = true } # body askama = { version = "0.10", optional = true } doc-comment = { version = "0.3.3", optional = true } serde_urlencoded = { version = "0.7", optional = true } mime_guess = { version = "2.0", optional = true } multer = { version = "2.0", optional = true } mime = { version = "0.3", optional = true } # websocket tokio-tungstenite = { version = "0.15.0", default-features = false, optional = true } # tls rustls = { version = "0.20", optional = true } tokio-rustls = { version = "0.23", optional = true } rustls-pemfile = { version = "0.2", optional = true } # jsonrpc jsonrpc-v2 = { version = "0.10", default-features = false, features = ["bytes-v10"], optional = true } [dev-dependencies] tokio = { version = "1.15", features = ["full"] } tokio-native-tls = "0.3" hyper-tls = "0.5" reqwest = { version = "0.11", features = ["json", "cookies", "gzip", "multipart"] } pretty_env_logger = "0.4" serde = { version = "1", features = ["derive"] } test-case = "1.2" slab = "0.4.5" multimap = "0.8" hyper = "0.14" mime = "0.3" encoding = "0.2" askama = "0.10" anyhow = "1.0" [features] default = ["async_rt"] full = [ "default", "json", "urlencoded", "file", "multipart", "template", "tls", "router", "jwt", "cookies", "compress", "websocket", "jsonrpc", ] docs = ["full", "roa-core/docs"] runtime = ["roa-core/runtime"] json = ["serde", "serde_json"] multipart = ["multer", "mime"] urlencoded = ["serde", "serde_urlencoded"] file = ["mime_guess", "tokio/fs"] template = ["askama"] tcp = ["tokio/net", "tokio/time"] tls = ["rustls", "tokio-rustls", "rustls-pemfile"] cookies = ["cookie"] jwt = ["jsonwebtoken", "serde", "serde_json"] router = ["radix_trie", "regex", "doc-comment"] websocket = ["tokio-tungstenite"] compress = ["async-compression"] async_rt = ["runtime", "tcp"] jsonrpc = ["jsonrpc-v2"]