From 78894c9f96e1108f6ae43cee43265b1e3b4a9f83 Mon Sep 17 00:00:00 2001 From: Yuchen Wu Date: Fri, 10 May 2024 10:40:14 -0700 Subject: [PATCH] Release 0.1.2 --- .bleep | 2 +- CHANGELOG.md | 33 +++++++++++++++++++++++++++++++ pingora-boringssl/Cargo.toml | 2 +- pingora-cache/Cargo.toml | 14 ++++++------- pingora-core/Cargo.toml | 16 +++++++-------- pingora-error/Cargo.toml | 2 +- pingora-header-serde/Cargo.toml | 6 +++--- pingora-http/Cargo.toml | 4 ++-- pingora-ketama/Cargo.toml | 2 +- pingora-limits/Cargo.toml | 2 +- pingora-load-balancing/Cargo.toml | 12 +++++------ pingora-lru/Cargo.toml | 2 +- pingora-memory-cache/Cargo.toml | 8 ++++---- pingora-openssl/Cargo.toml | 2 +- pingora-pool/Cargo.toml | 4 ++-- pingora-proxy/Cargo.toml | 14 ++++++------- pingora-runtime/Cargo.toml | 2 +- pingora-timeout/Cargo.toml | 2 +- pingora/Cargo.toml | 14 ++++++------- tinyufo/Cargo.toml | 2 +- 20 files changed, 89 insertions(+), 56 deletions(-) diff --git a/.bleep b/.bleep index f2904f03..8acee4df 100644 --- a/.bleep +++ b/.bleep @@ -1 +1 @@ -db858a34938d5a4f3eefbc5187cc225dde5c02de \ No newline at end of file +18742c65fffe64ef8be251aa2fb9713e3a8a2ded \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index d0bfceea..3552778f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,39 @@ All notable changes to this project will be documented in this file. +## [0.1.2](https://github.com/cloudflare/pingora/compare/0.1.1...0.1.2) - 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>` 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` +- 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 d84ed813..dd5b581e 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.1.2" authors = ["Yuchen Wu "] license = "Apache-2.0" edition = "2021" diff --git a/pingora-cache/Cargo.toml b/pingora-cache/Cargo.toml index 06bc8649..12098a3a 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.1.2" authors = ["Yuchen Wu "] 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.1.2", path = "../pingora-core", default-features = false } +pingora-error = { version = "0.1.2", path = "../pingora-error" } +pingora-header-serde = { version = "0.1.2", path = "../pingora-header-serde" } +pingora-http = { version = "0.1.2", path = "../pingora-http" } +pingora-lru = { version = "0.1.2", path = "../pingora-lru" } +pingora-timeout = { version = "0.1.2", 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 936a7b99..6ef6a9d3 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.1.2" authors = ["Yuchen Wu "] 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.1.2", path = "../pingora-runtime" } +pingora-openssl = { version = "0.1.2", path = "../pingora-openssl", optional = true } +pingora-boringssl = { version = "0.1.2", path = "../pingora-boringssl", optional = true } +pingora-pool = { version = "0.1.2", path = "../pingora-pool" } +pingora-error = { version = "0.1.2", path = "../pingora-error" } +pingora-timeout = { version = "0.1.2", path = "../pingora-timeout" } +pingora-http = { version = "0.1.2", 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 cdbc619d..32fa7509 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.1.2" authors = ["Yuchen Wu "] license = "Apache-2.0" edition = "2021" diff --git a/pingora-header-serde/Cargo.toml b/pingora-header-serde/Cargo.toml index eaaa6433..df5b69de 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.1.2" authors = ["Yuchen Wu "] 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.1.2", path = "../pingora-error" } +pingora-http = { version = "0.1.2", path = "../pingora-http" } thread_local = "1.0" diff --git a/pingora-http/Cargo.toml b/pingora-http/Cargo.toml index 6cf7f978..e8e1c8cd 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.1.2" authors = ["Yuchen Wu "] 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.1.2", path = "../pingora-error" } [features] default = [] diff --git a/pingora-ketama/Cargo.toml b/pingora-ketama/Cargo.toml index 1e467b59..a919af53 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.1.2" description = "Rust port of the nginx consistent hash function" authors = ["Pingora Team "] license = "Apache-2.0" diff --git a/pingora-limits/Cargo.toml b/pingora-limits/Cargo.toml index 0a0ef991..385e7146 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.1.2" authors = ["Yuchen Wu "] 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 f4057867..154c19da 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.1.2" authors = ["Yuchen Wu "] 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.1.2", path = "../pingora-http" } +pingora-error = { version = "0.1.2", path = "../pingora-error" } +pingora-core = { version = "0.1.2", path = "../pingora-core", default-features = false } +pingora-ketama = { version = "0.1.2", path = "../pingora-ketama" } +pingora-runtime = { version = "0.1.2", path = "../pingora-runtime" } arc-swap = "1" fnv = "1" rand = "0" diff --git a/pingora-lru/Cargo.toml b/pingora-lru/Cargo.toml index 69851c3d..4e5d10ce 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.1.2" authors = ["Yuchen Wu "] license = "Apache-2.0" edition = "2021" diff --git a/pingora-memory-cache/Cargo.toml b/pingora-memory-cache/Cargo.toml index d51268b7..89646a81 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.1.2" authors = ["Yuchen Wu "] 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.1.2", 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.1.2", path = "../pingora-error" } log = { workspace = true } parking_lot = "0" -pingora-timeout = { version = "0.1.0", path = "../pingora-timeout" } +pingora-timeout = { version = "0.1.2", path = "../pingora-timeout" } diff --git a/pingora-openssl/Cargo.toml b/pingora-openssl/Cargo.toml index 19b33490..b2cc1802 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.1.2" authors = ["Yuchen Wu "] license = "Apache-2.0" edition = "2021" diff --git a/pingora-pool/Cargo.toml b/pingora-pool/Cargo.toml index 170e4971..7d78b9d0 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.1.2" authors = ["Yuchen Wu "] 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.1.2", path = "../pingora-timeout" } [dev-dependencies] tokio-test = "0.4" diff --git a/pingora-proxy/Cargo.toml b/pingora-proxy/Cargo.toml index a1a49bd7..434691f3 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.1.2" authors = ["Yuchen Wu "] 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.1.2", path = "../pingora-error" } +pingora-core = { version = "0.1.2", path = "../pingora-core", default-features = false } +pingora-timeout = { version = "0.1.2", path = "../pingora-timeout" } +pingora-cache = { version = "0.1.2", 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.1.2", 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.1.2", 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 73051297..c067d534 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.1.2" authors = ["Yuchen Wu "] license = "Apache-2.0" edition = "2021" diff --git a/pingora-timeout/Cargo.toml b/pingora-timeout/Cargo.toml index 1b271e45..6918deb4 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.1.2" authors = ["Yuchen Wu "] license = "Apache-2.0" edition = "2021" diff --git a/pingora/Cargo.toml b/pingora/Cargo.toml index 2996d573..efb10388 100644 --- a/pingora/Cargo.toml +++ b/pingora/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pingora" -version = "0.1.0" +version = "0.1.2" authors = ["Yuchen Wu "] 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.1.2", path = "../pingora-core", default-features = false } +pingora-http = { version = "0.1.2", path = "../pingora-http" } +pingora-timeout = { version = "0.1.2", path = "../pingora-timeout" } +pingora-load-balancing = { version = "0.1.2", path = "../pingora-load-balancing", optional = true, default-features = false } +pingora-proxy = { version = "0.1.2", path = "../pingora-proxy", optional = true, default-features = false } +pingora-cache = { version = "0.1.2", path = "../pingora-cache", optional = true, default-features = false } [dev-dependencies] structopt = "0.3" diff --git a/tinyufo/Cargo.toml b/tinyufo/Cargo.toml index 4b3b2c91..601d5261 100644 --- a/tinyufo/Cargo.toml +++ b/tinyufo/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "TinyUFO" -version = "0.1.0" +version = "0.1.2" authors = ["Yuchen Wu "] edition = "2021" license = "Apache-2.0"