1
0
Fork 0
mirror of https://github.com/actix/actix-web.git synced 2024-06-11 09:49:29 +00:00

rename flate2-c feature to flate2-zlib

This commit is contained in:
Nikolay Kim 2019-03-26 18:46:06 -07:00
parent 1904b01fc0
commit 2629699b62
7 changed files with 48 additions and 32 deletions

View file

@ -36,10 +36,10 @@ members = [
]
[package.metadata.docs.rs]
features = ["ssl", "tls", "rust-tls", "brotli", "flate2-c", "cookies", "client"]
features = ["ssl", "tls", "rust-tls", "brotli", "flate2-zlib", "cookies", "client"]
[features]
default = ["brotli", "flate2-c", "cookies", "client"]
default = ["brotli", "flate2-zlib", "cookies", "client"]
# http client
client = ["awc"]
@ -48,7 +48,7 @@ client = ["awc"]
brotli = ["actix-http/brotli2"]
# miniz-sys backend for flate2 crate
flate2-c = ["actix-http/flate2-c"]
flate2-zlib = ["actix-http/flate2-zlib"]
# rust backend for flate2 crate
flate2-rust = ["actix-http/flate2-rust"]
@ -102,7 +102,7 @@ openssl = { version="0.10", optional = true }
# rustls = { version = "^0.15", optional = true }
[dev-dependencies]
actix-http = { path = "actix-http", features=["ssl", "brotli", "flate2-c"] }
actix-http = { path = "actix-http", features=["ssl", "brotli", "flate2-zlib"] }
actix-http-test = { path = "test-server", features=["ssl"] }
rand = "0.6"
env_logger = "0.6"

View file

@ -40,7 +40,7 @@ cookies = ["cookie"]
brotli = ["brotli2"]
# miniz-sys backend for flate2 crate
flate2-c = ["flate2/miniz-sys"]
flate2-zlib = ["flate2/miniz-sys"]
# rust backend for flate2 crate
flate2-rust = ["flate2/rust_backend"]

View file

@ -5,7 +5,7 @@ use futures::{Async, Poll, Stream};
#[cfg(feature = "brotli")]
use brotli2::write::BrotliDecoder;
#[cfg(any(feature = "flate2-c", feature = "flate2-rust"))]
#[cfg(any(feature = "flate2-zlib", feature = "flate2-rust"))]
use flate2::write::{GzDecoder, ZlibDecoder};
use super::Writer;
@ -27,11 +27,11 @@ where
ContentEncoding::Br => Some(ContentDecoder::Br(Box::new(
BrotliDecoder::new(Writer::new()),
))),
#[cfg(any(feature = "flate2-c", feature = "flate2-rust"))]
#[cfg(any(feature = "flate2-zlib", feature = "flate2-rust"))]
ContentEncoding::Deflate => Some(ContentDecoder::Deflate(Box::new(
ZlibDecoder::new(Writer::new()),
))),
#[cfg(any(feature = "flate2-c", feature = "flate2-rust"))]
#[cfg(any(feature = "flate2-zlib", feature = "flate2-rust"))]
ContentEncoding::Gzip => Some(ContentDecoder::Gzip(Box::new(
GzDecoder::new(Writer::new()),
))),
@ -95,15 +95,16 @@ where
}
enum ContentDecoder {
#[cfg(any(feature = "flate2-c", feature = "flate2-rust"))]
#[cfg(any(feature = "flate2-zlib", feature = "flate2-rust"))]
Deflate(Box<ZlibDecoder<Writer>>),
#[cfg(any(feature = "flate2-c", feature = "flate2-rust"))]
#[cfg(any(feature = "flate2-zlib", feature = "flate2-rust"))]
Gzip(Box<GzDecoder<Writer>>),
#[cfg(feature = "brotli")]
Br(Box<BrotliDecoder<Writer>>),
}
impl ContentDecoder {
#[allow(unreachable_patterns)]
fn feed_eof(&mut self) -> io::Result<Option<Bytes>> {
match self {
#[cfg(feature = "brotli")]
@ -118,7 +119,7 @@ impl ContentDecoder {
}
Err(e) => Err(e),
},
#[cfg(any(feature = "flate2-c", feature = "flate2-rust"))]
#[cfg(any(feature = "flate2-zlib", feature = "flate2-rust"))]
ContentDecoder::Gzip(ref mut decoder) => match decoder.try_finish() {
Ok(_) => {
let b = decoder.get_mut().take();
@ -130,7 +131,7 @@ impl ContentDecoder {
}
Err(e) => Err(e),
},
#[cfg(any(feature = "flate2-c", feature = "flate2-rust"))]
#[cfg(any(feature = "flate2-zlib", feature = "flate2-rust"))]
ContentDecoder::Deflate(ref mut decoder) => match decoder.try_finish() {
Ok(_) => {
let b = decoder.get_mut().take();
@ -142,12 +143,14 @@ impl ContentDecoder {
}
Err(e) => Err(e),
},
_ => Ok(None),
}
}
#[allow(unreachable_patterns)]
fn feed_data(&mut self, data: Bytes) -> io::Result<Option<Bytes>> {
match self {
#[cfg(any(feature = "flate2-c", feature = "flate2-rust"))]
#[cfg(any(feature = "flate2-zlib", feature = "flate2-rust"))]
ContentDecoder::Br(ref mut decoder) => match decoder.write_all(&data) {
Ok(_) => {
decoder.flush()?;
@ -160,7 +163,7 @@ impl ContentDecoder {
}
Err(e) => Err(e),
},
#[cfg(any(feature = "flate2-c", feature = "flate2-rust"))]
#[cfg(any(feature = "flate2-zlib", feature = "flate2-rust"))]
ContentDecoder::Gzip(ref mut decoder) => match decoder.write_all(&data) {
Ok(_) => {
decoder.flush()?;
@ -173,7 +176,7 @@ impl ContentDecoder {
}
Err(e) => Err(e),
},
#[cfg(any(feature = "flate2-c", feature = "flate2-rust"))]
#[cfg(any(feature = "flate2-zlib", feature = "flate2-rust"))]
ContentDecoder::Deflate(ref mut decoder) => match decoder.write_all(&data) {
Ok(_) => {
decoder.flush()?;
@ -186,6 +189,7 @@ impl ContentDecoder {
}
Err(e) => Err(e),
},
_ => Ok(Some(data)),
}
}
}

View file

@ -6,7 +6,7 @@ use futures::{Async, Poll};
#[cfg(feature = "brotli")]
use brotli2::write::BrotliEncoder;
#[cfg(any(feature = "flate2-c", feature = "flate2-rust"))]
#[cfg(any(feature = "flate2-zlib", feature = "flate2-rust"))]
use flate2::write::{GzEncoder, ZlibEncoder};
use crate::body::{Body, BodyLength, MessageBody, ResponseBody};
@ -142,9 +142,9 @@ fn update_head(encoding: ContentEncoding, head: &mut ResponseHead) {
}
enum ContentEncoder {
#[cfg(any(feature = "flate2-c", feature = "flate2-rust"))]
#[cfg(any(feature = "flate2-zlib", feature = "flate2-rust"))]
Deflate(ZlibEncoder<Writer>),
#[cfg(any(feature = "flate2-c", feature = "flate2-rust"))]
#[cfg(any(feature = "flate2-zlib", feature = "flate2-rust"))]
Gzip(GzEncoder<Writer>),
#[cfg(feature = "brotli")]
Br(BrotliEncoder<Writer>),
@ -153,12 +153,12 @@ enum ContentEncoder {
impl ContentEncoder {
fn encoder(encoding: ContentEncoding) -> Option<Self> {
match encoding {
#[cfg(any(feature = "flate2-c", feature = "flate2-rust"))]
#[cfg(any(feature = "flate2-zlib", feature = "flate2-rust"))]
ContentEncoding::Deflate => Some(ContentEncoder::Deflate(ZlibEncoder::new(
Writer::new(),
flate2::Compression::fast(),
))),
#[cfg(any(feature = "flate2-c", feature = "flate2-rust"))]
#[cfg(any(feature = "flate2-zlib", feature = "flate2-rust"))]
ContentEncoding::Gzip => Some(ContentEncoder::Gzip(GzEncoder::new(
Writer::new(),
flate2::Compression::fast(),
@ -176,9 +176,9 @@ impl ContentEncoder {
match *self {
#[cfg(feature = "brotli")]
ContentEncoder::Br(ref mut encoder) => encoder.get_mut().take(),
#[cfg(any(feature = "flate2-c", feature = "flate2-rust"))]
#[cfg(any(feature = "flate2-zlib", feature = "flate2-rust"))]
ContentEncoder::Deflate(ref mut encoder) => encoder.get_mut().take(),
#[cfg(any(feature = "flate2-c", feature = "flate2-rust"))]
#[cfg(any(feature = "flate2-zlib", feature = "flate2-rust"))]
ContentEncoder::Gzip(ref mut encoder) => encoder.get_mut().take(),
}
}
@ -190,12 +190,12 @@ impl ContentEncoder {
Ok(writer) => Ok(writer.buf.freeze()),
Err(err) => Err(err),
},
#[cfg(any(feature = "flate2-c", feature = "flate2-rust"))]
#[cfg(any(feature = "flate2-zlib", feature = "flate2-rust"))]
ContentEncoder::Gzip(encoder) => match encoder.finish() {
Ok(writer) => Ok(writer.buf.freeze()),
Err(err) => Err(err),
},
#[cfg(any(feature = "flate2-c", feature = "flate2-rust"))]
#[cfg(any(feature = "flate2-zlib", feature = "flate2-rust"))]
ContentEncoder::Deflate(encoder) => match encoder.finish() {
Ok(writer) => Ok(writer.buf.freeze()),
Err(err) => Err(err),
@ -213,7 +213,7 @@ impl ContentEncoder {
Err(err)
}
},
#[cfg(any(feature = "flate2-c", feature = "flate2-rust"))]
#[cfg(any(feature = "flate2-zlib", feature = "flate2-rust"))]
ContentEncoder::Gzip(ref mut encoder) => match encoder.write_all(data) {
Ok(_) => Ok(!encoder.get_ref().buf.is_empty()),
Err(err) => {
@ -221,7 +221,7 @@ impl ContentEncoder {
Err(err)
}
},
#[cfg(any(feature = "flate2-c", feature = "flate2-rust"))]
#[cfg(any(feature = "flate2-zlib", feature = "flate2-rust"))]
ContentEncoder::Deflate(ref mut encoder) => match encoder.write_all(data) {
Ok(_) => Ok(!encoder.get_ref().buf.is_empty()),
Err(err) => {

View file

@ -17,8 +17,11 @@ edition = "2018"
name = "awc"
path = "src/lib.rs"
[package.metadata.docs.rs]
features = ["ssl", "brotli", "flate2-zlib", "cookies"]
[features]
default = ["cookies"]
default = ["cookies", "brotli", "flate2-zlib"]
# openssl
ssl = ["openssl", "actix-http/ssl"]
@ -26,6 +29,15 @@ ssl = ["openssl", "actix-http/ssl"]
# cookies integration
cookies = ["cookie", "actix-http/cookies"]
# brotli encoding, requires c compiler
brotli = ["actix-http/brotli2"]
# miniz-sys backend for flate2 crate
flate2-zlib = ["actix-http/flate2-zlib"]
# rust backend for flate2 crate
flate2-rust = ["actix-http/flate2-rust"]
[dependencies]
actix-service = "0.3.4"
actix-http = { path = "../actix-http/" }

View file

@ -71,7 +71,7 @@
//! dependency
//! * `brotli` - enables `brotli` compression support, requires `c`
//! compiler
//! * `flate2-c` - enables `gzip`, `deflate` compression support, requires
//! * `flate2-zlib` - enables `gzip`, `deflate` compression support, requires
//! `c` compiler
//! * `flate2-rust` - experimental rust based implementation for
//! `gzip`, `deflate` compression.

View file

@ -1,12 +1,12 @@
//! Middlewares
#[cfg(any(feature = "brotli", feature = "flate2"))]
#[cfg(any(feature = "brotli", feature = "flate2-zlib", feature = "flate2-rust"))]
mod compress;
#[cfg(any(feature = "brotli", feature = "flate2"))]
#[cfg(any(feature = "brotli", feature = "flate2-zlib", feature = "flate2-rust"))]
pub use self::compress::Compress;
#[cfg(any(feature = "brotli", feature = "flate2"))]
#[cfg(any(feature = "brotli", feature = "flate2-zlib", feature = "flate2-rust"))]
mod decompress;
#[cfg(any(feature = "brotli", feature = "flate2"))]
#[cfg(any(feature = "brotli", feature = "flate2-zlib", feature = "flate2-rust"))]
pub use self::decompress::Decompress;
pub mod cors;