aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--.bleep2
-rw-r--r--CHANGELOG.md33
-rw-r--r--pingora-boringssl/Cargo.toml2
-rw-r--r--pingora-cache/Cargo.toml14
-rw-r--r--pingora-core/Cargo.toml16
-rw-r--r--pingora-error/Cargo.toml2
-rw-r--r--pingora-header-serde/Cargo.toml6
-rw-r--r--pingora-http/Cargo.toml4
-rw-r--r--pingora-ketama/Cargo.toml2
-rw-r--r--pingora-limits/Cargo.toml2
-rw-r--r--pingora-load-balancing/Cargo.toml12
-rw-r--r--pingora-lru/Cargo.toml2
-rw-r--r--pingora-memory-cache/Cargo.toml8
-rw-r--r--pingora-openssl/Cargo.toml2
-rw-r--r--pingora-pool/Cargo.toml4
-rw-r--r--pingora-proxy/Cargo.toml14
-rw-r--r--pingora-runtime/Cargo.toml2
-rw-r--r--pingora-timeout/Cargo.toml2
-rw-r--r--pingora/Cargo.toml14
-rw-r--r--tinyufo/Cargo.toml2
20 files changed, 89 insertions, 56 deletions
diff --git a/.bleep b/.bleep
index f2904f0..759a483 100644
--- a/.bleep
+++ b/.bleep
@@ -1 +1 @@
-db858a34938d5a4f3eefbc5187cc225dde5c02de \ No newline at end of file
+28022cfd206a7dfa1670a9884eb5b8bf621e8bfd \ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d0bfcee..281fee4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,39 @@
All notable changes to this project will be documented in this file.
+## [0.2.0](https://github.com/cloudflare/pingora/compare/0.1.1...0.2.0) - 2024-05-10
+
+### 🚀 Features
+- Add support for downstream h2 trailers and add an upstream h2 response trailer filter
+- Add the ability to set TCP recv buf size
+- Add a convenience function to retrieve Session digest
+- Add `body_bytes_read()` method to Session
+- Add `cache_not_modified_filter`
+- Add `SSLKEYLOG` support for tls upstream
+- Add `Service<HttpProxy<T>>` constructor for providing name
+- Add `purge_response` callback
+- Make `pop_closed` pub, to simplify DIY drains
+
+### 🐛 Bug Fixes
+- Fixed gRPC trailer proxying
+- Fixed `response_body_filter` `end_of_stream` always being false
+- Fixed compile error in Rust <= 1.73
+- Fixed non linux build
+- Fixed the counting problem of used_weight data field in `LruUnit<T>`
+- Fixed `cargo run --example server` missing cert
+- Fixed error log string interpolation outside of proper context
+- Fixed tinylfu test flake
+
+### ⚙️ Changes and Miscellaneous Tasks
+- API change: `Server::run_forever` now takes ownership and ensures exit semantics
+- API change: `cleanup()` method of `ServerApp` trait is now async
+- Behavior change: Always return `HttpTask::Body` on body done instead of `HttpTask::done`
+- Behavior change: HTTP/1 reason phrase is now parsed and proxied
+- Updated `h2` dependency for RUSTSEC-2024-0332
+- Updated zstd dependencies
+- Code optimization and refactor in a few crates
+- More examples and docs
+
## [0.1.1](https://github.com/cloudflare/pingora/compare/0.1.0...0.1.1) - 2024-04-05
### 🚀 Features
diff --git a/pingora-boringssl/Cargo.toml b/pingora-boringssl/Cargo.toml
index d84ed81..c674671 100644
--- a/pingora-boringssl/Cargo.toml
+++ b/pingora-boringssl/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pingora-boringssl"
-version = "0.1.0"
+version = "0.2.0"
authors = ["Yuchen Wu <[email protected]>"]
license = "Apache-2.0"
edition = "2021"
diff --git a/pingora-cache/Cargo.toml b/pingora-cache/Cargo.toml
index 06bc864..eba68c7 100644
--- a/pingora-cache/Cargo.toml
+++ b/pingora-cache/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pingora-cache"
-version = "0.1.0"
+version = "0.2.0"
authors = ["Yuchen Wu <[email protected]>"]
license = "Apache-2.0"
edition = "2021"
@@ -17,12 +17,12 @@ name = "pingora_cache"
path = "src/lib.rs"
[dependencies]
-pingora-core = { version = "0.1.0", path = "../pingora-core", default-features = false }
-pingora-error = { version = "0.1.0", path = "../pingora-error" }
-pingora-header-serde = { version = "0.1.0", path = "../pingora-header-serde" }
-pingora-http = { version = "0.1.0", path = "../pingora-http" }
-pingora-lru = { version = "0.1.0", path = "../pingora-lru" }
-pingora-timeout = { version = "0.1.0", path = "../pingora-timeout" }
+pingora-core = { version = "0.2.0", path = "../pingora-core", default-features = false }
+pingora-error = { version = "0.2.0", path = "../pingora-error" }
+pingora-header-serde = { version = "0.2.0", path = "../pingora-header-serde" }
+pingora-http = { version = "0.2.0", path = "../pingora-http" }
+pingora-lru = { version = "0.2.0", path = "../pingora-lru" }
+pingora-timeout = { version = "0.2.0", path = "../pingora-timeout" }
http = { workspace = true }
indexmap = "1"
once_cell = { workspace = true }
diff --git a/pingora-core/Cargo.toml b/pingora-core/Cargo.toml
index 936a7b9..5ced49d 100644
--- a/pingora-core/Cargo.toml
+++ b/pingora-core/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pingora-core"
-version = "0.1.0"
+version = "0.2.0"
authors = ["Yuchen Wu <[email protected]>"]
license = "Apache-2.0"
edition = "2021"
@@ -19,13 +19,13 @@ name = "pingora_core"
path = "src/lib.rs"
[dependencies]
-pingora-runtime = { version = "0.1.0", path = "../pingora-runtime" }
-pingora-openssl = { version = "0.1.0", path = "../pingora-openssl", optional = true }
-pingora-boringssl = { version = "0.1.0", path = "../pingora-boringssl", optional = true }
-pingora-pool = { version = "0.1.0", path = "../pingora-pool" }
-pingora-error = { version = "0.1.0", path = "../pingora-error" }
-pingora-timeout = { version = "0.1.0", path = "../pingora-timeout" }
-pingora-http = { version = "0.1.0", path = "../pingora-http" }
+pingora-runtime = { version = "0.2.0", path = "../pingora-runtime" }
+pingora-openssl = { version = "0.2.0", path = "../pingora-openssl", optional = true }
+pingora-boringssl = { version = "0.2.0", path = "../pingora-boringssl", optional = true }
+pingora-pool = { version = "0.2.0", path = "../pingora-pool" }
+pingora-error = { version = "0.2.0", path = "../pingora-error" }
+pingora-timeout = { version = "0.2.0", path = "../pingora-timeout" }
+pingora-http = { version = "0.2.0", path = "../pingora-http" }
tokio = { workspace = true, features = ["rt-multi-thread", "signal"] }
futures = "0.3"
async-trait = { workspace = true }
diff --git a/pingora-error/Cargo.toml b/pingora-error/Cargo.toml
index cdbc619..707a660 100644
--- a/pingora-error/Cargo.toml
+++ b/pingora-error/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pingora-error"
-version = "0.1.0"
+version = "0.2.0"
authors = ["Yuchen Wu <[email protected]>"]
license = "Apache-2.0"
edition = "2021"
diff --git a/pingora-header-serde/Cargo.toml b/pingora-header-serde/Cargo.toml
index eaaa643..da079a9 100644
--- a/pingora-header-serde/Cargo.toml
+++ b/pingora-header-serde/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pingora-header-serde"
-version = "0.1.0"
+version = "0.2.0"
authors = ["Yuchen Wu <[email protected]>"]
license = "Apache-2.0"
edition = "2021"
@@ -27,6 +27,6 @@ zstd-safe = { version = "7.1.0", features = ["std"] }
http = { workspace = true }
bytes = { workspace = true }
httparse = { workspace = true }
-pingora-error = { version = "0.1.0", path = "../pingora-error" }
-pingora-http = { version = "0.1.0", path = "../pingora-http" }
+pingora-error = { version = "0.2.0", path = "../pingora-error" }
+pingora-http = { version = "0.2.0", path = "../pingora-http" }
thread_local = "1.0"
diff --git a/pingora-http/Cargo.toml b/pingora-http/Cargo.toml
index 6cf7f97..ebf90d7 100644
--- a/pingora-http/Cargo.toml
+++ b/pingora-http/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pingora-http"
-version = "0.1.0"
+version = "0.2.0"
authors = ["Yuchen Wu <[email protected]>"]
license = "Apache-2.0"
edition = "2021"
@@ -19,7 +19,7 @@ path = "src/lib.rs"
[dependencies]
http = { workspace = true }
bytes = { workspace = true }
-pingora-error = { version = "0.1.0", path = "../pingora-error" }
+pingora-error = { version = "0.2.0", path = "../pingora-error" }
[features]
default = []
diff --git a/pingora-ketama/Cargo.toml b/pingora-ketama/Cargo.toml
index 1e467b5..bf13e74 100644
--- a/pingora-ketama/Cargo.toml
+++ b/pingora-ketama/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pingora-ketama"
-version = "0.1.0"
+version = "0.2.0"
description = "Rust port of the nginx consistent hash function"
authors = ["Pingora Team <[email protected]>"]
license = "Apache-2.0"
diff --git a/pingora-limits/Cargo.toml b/pingora-limits/Cargo.toml
index 0a0ef99..8018a13 100644
--- a/pingora-limits/Cargo.toml
+++ b/pingora-limits/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pingora-limits"
-version = "0.1.0"
+version = "0.2.0"
authors = ["Yuchen Wu <[email protected]>"]
license = "Apache-2.0"
description = "A library for rate limiting and event frequency estimation"
diff --git a/pingora-load-balancing/Cargo.toml b/pingora-load-balancing/Cargo.toml
index f405786..73a917b 100644
--- a/pingora-load-balancing/Cargo.toml
+++ b/pingora-load-balancing/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pingora-load-balancing"
-version = "0.1.0"
+version = "0.2.0"
authors = ["Yuchen Wu <[email protected]>"]
license = "Apache-2.0"
edition = "2021"
@@ -18,11 +18,11 @@ path = "src/lib.rs"
[dependencies]
async-trait = { workspace = true }
-pingora-http = { version = "0.1.0", path = "../pingora-http" }
-pingora-error = { version = "0.1.0", path = "../pingora-error" }
-pingora-core = { version = "0.1.0", path = "../pingora-core", default-features = false }
-pingora-ketama = { version = "0.1.0", path = "../pingora-ketama" }
-pingora-runtime = { version = "0.1.0", path = "../pingora-runtime" }
+pingora-http = { version = "0.2.0", path = "../pingora-http" }
+pingora-error = { version = "0.2.0", path = "../pingora-error" }
+pingora-core = { version = "0.2.0", path = "../pingora-core", default-features = false }
+pingora-ketama = { version = "0.2.0", path = "../pingora-ketama" }
+pingora-runtime = { version = "0.2.0", path = "../pingora-runtime" }
arc-swap = "1"
fnv = "1"
rand = "0"
diff --git a/pingora-lru/Cargo.toml b/pingora-lru/Cargo.toml
index 69851c3..f263e46 100644
--- a/pingora-lru/Cargo.toml
+++ b/pingora-lru/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pingora-lru"
-version = "0.1.0"
+version = "0.2.0"
authors = ["Yuchen Wu <[email protected]>"]
license = "Apache-2.0"
edition = "2021"
diff --git a/pingora-memory-cache/Cargo.toml b/pingora-memory-cache/Cargo.toml
index d51268b..3d8f549 100644
--- a/pingora-memory-cache/Cargo.toml
+++ b/pingora-memory-cache/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pingora-memory-cache"
-version = "0.1.0"
+version = "0.2.0"
authors = ["Yuchen Wu <[email protected]>"]
license = "Apache-2.0"
edition = "2021"
@@ -17,11 +17,11 @@ name = "pingora_memory_cache"
path = "src/lib.rs"
[dependencies]
-TinyUFO = { version = "0.1.0", path = "../tinyufo" }
+TinyUFO = { version = "0.2.0", path = "../tinyufo" }
ahash = { workspace = true }
tokio = { workspace = true, features = ["sync"] }
async-trait = { workspace = true }
-pingora-error = { version = "0.1.0", path = "../pingora-error" }
+pingora-error = { version = "0.2.0", path = "../pingora-error" }
log = { workspace = true }
parking_lot = "0"
-pingora-timeout = { version = "0.1.0", path = "../pingora-timeout" }
+pingora-timeout = { version = "0.2.0", path = "../pingora-timeout" }
diff --git a/pingora-openssl/Cargo.toml b/pingora-openssl/Cargo.toml
index 19b3349..cb0574a 100644
--- a/pingora-openssl/Cargo.toml
+++ b/pingora-openssl/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pingora-openssl"
-version = "0.1.0"
+version = "0.2.0"
authors = ["Yuchen Wu <[email protected]>"]
license = "Apache-2.0"
edition = "2021"
diff --git a/pingora-pool/Cargo.toml b/pingora-pool/Cargo.toml
index 170e497..5282cf3 100644
--- a/pingora-pool/Cargo.toml
+++ b/pingora-pool/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pingora-pool"
-version = "0.1.0"
+version = "0.2.0"
authors = ["Yuchen Wu <[email protected]>"]
license = "Apache-2.0"
edition = "2021"
@@ -23,7 +23,7 @@ lru = { workspace = true }
log = { workspace = true }
parking_lot = "0.12"
crossbeam-queue = "0.3"
-pingora-timeout = { version = "0.1.0", path = "../pingora-timeout" }
+pingora-timeout = { version = "0.2.0", path = "../pingora-timeout" }
[dev-dependencies]
tokio-test = "0.4"
diff --git a/pingora-proxy/Cargo.toml b/pingora-proxy/Cargo.toml
index a1a49bd..c391196 100644
--- a/pingora-proxy/Cargo.toml
+++ b/pingora-proxy/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pingora-proxy"
-version = "0.1.0"
+version = "0.2.0"
authors = ["Yuchen Wu <[email protected]>"]
license = "Apache-2.0"
edition = "2021"
@@ -18,12 +18,12 @@ name = "pingora_proxy"
path = "src/lib.rs"
[dependencies]
-pingora-error = { version = "0.1.0", path = "../pingora-error" }
-pingora-core = { version = "0.1.0", path = "../pingora-core", default-features = false }
-pingora-timeout = { version = "0.1.0", path = "../pingora-timeout" }
-pingora-cache = { version = "0.1.0", path = "../pingora-cache", default-features = false }
+pingora-error = { version = "0.2.0", path = "../pingora-error" }
+pingora-core = { version = "0.2.0", path = "../pingora-core", default-features = false }
+pingora-timeout = { version = "0.2.0", path = "../pingora-timeout" }
+pingora-cache = { version = "0.2.0", path = "../pingora-cache", default-features = false }
tokio = { workspace = true, features = ["macros", "net"] }
-pingora-http = { version = "0.1.0", path = "../pingora-http" }
+pingora-http = { version = "0.2.0", path = "../pingora-http" }
http = { workspace = true }
futures = "0.3"
bytes = { workspace = true }
@@ -44,7 +44,7 @@ env_logger = "0.9"
hyperlocal = "0.8"
hyper = "0.14"
tokio-tungstenite = "0.20.1"
-pingora-load-balancing = { version = "0.1.0", path = "../pingora-load-balancing" }
+pingora-load-balancing = { version = "0.2.0", path = "../pingora-load-balancing" }
prometheus = "0"
futures-util = "0.3"
serde = { version = "1.0", features = ["derive"] }
diff --git a/pingora-runtime/Cargo.toml b/pingora-runtime/Cargo.toml
index 7305129..abaac73 100644
--- a/pingora-runtime/Cargo.toml
+++ b/pingora-runtime/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pingora-runtime"
-version = "0.1.0"
+version = "0.2.0"
authors = ["Yuchen Wu <[email protected]>"]
license = "Apache-2.0"
edition = "2021"
diff --git a/pingora-timeout/Cargo.toml b/pingora-timeout/Cargo.toml
index 1b271e4..8f62476 100644
--- a/pingora-timeout/Cargo.toml
+++ b/pingora-timeout/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pingora-timeout"
-version = "0.1.0"
+version = "0.2.0"
authors = ["Yuchen Wu <[email protected]>"]
license = "Apache-2.0"
edition = "2021"
diff --git a/pingora/Cargo.toml b/pingora/Cargo.toml
index 2996d57..8ae3aba 100644
--- a/pingora/Cargo.toml
+++ b/pingora/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pingora"
-version = "0.1.0"
+version = "0.2.0"
authors = ["Yuchen Wu <[email protected]>"]
license = "Apache-2.0"
edition = "2021"
@@ -22,12 +22,12 @@ all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[dependencies]
-pingora-core = { version = "0.1.0", path = "../pingora-core", default-features = false }
-pingora-http = { version = "0.1.0", path = "../pingora-http" }
-pingora-timeout = { version = "0.1.0", path = "../pingora-timeout" }
-pingora-load-balancing = { version = "0.1.0", path = "../pingora-load-balancing", optional = true, default-features = false }
-pingora-proxy = { version = "0.1.0", path = "../pingora-proxy", optional = true, default-features = false }
-pingora-cache = { version = "0.1.0", path = "../pingora-cache", optional = true, default-features = false }
+pingora-core = { version = "0.2.0", path = "../pingora-core", default-features = false }
+pingora-http = { version = "0.2.0", path = "../pingora-http" }
+pingora-timeout = { version = "0.2.0", path = "../pingora-timeout" }
+pingora-load-balancing = { version = "0.2.0", path = "../pingora-load-balancing", optional = true, default-features = false }
+pingora-proxy = { version = "0.2.0", path = "../pingora-proxy", optional = true, default-features = false }
+pingora-cache = { version = "0.2.0", path = "../pingora-cache", optional = true, default-features = false }
[dev-dependencies]
structopt = "0.3"
diff --git a/tinyufo/Cargo.toml b/tinyufo/Cargo.toml
index 4b3b2c9..0326fe5 100644
--- a/tinyufo/Cargo.toml
+++ b/tinyufo/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "TinyUFO"
-version = "0.1.0"
+version = "0.2.0"
authors = ["Yuchen Wu <[email protected]>"]
edition = "2021"
license = "Apache-2.0"