Skip to content

Commit

Permalink
Release 0.2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
eaufavor committed May 10, 2024
1 parent 7507b69 commit 3dbdcc6
Show file tree
Hide file tree
Showing 20 changed files with 89 additions and 56 deletions.
2 changes: 1 addition & 1 deletion .bleep
@@ -1 +1 @@
db858a34938d5a4f3eefbc5187cc225dde5c02de
28022cfd206a7dfa1670a9884eb5b8bf621e8bfd
33 changes: 33 additions & 0 deletions CHANGELOG.md
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion pingora-boringssl/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pingora-boringssl"
version = "0.1.0"
version = "0.2.0"
authors = ["Yuchen Wu <yuchen@cloudflare.com>"]
license = "Apache-2.0"
edition = "2021"
Expand Down
14 changes: 7 additions & 7 deletions pingora-cache/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pingora-cache"
version = "0.1.0"
version = "0.2.0"
authors = ["Yuchen Wu <yuchen@cloudflare.com>"]
license = "Apache-2.0"
edition = "2021"
Expand All @@ -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 }
Expand Down
16 changes: 8 additions & 8 deletions pingora-core/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pingora-core"
version = "0.1.0"
version = "0.2.0"
authors = ["Yuchen Wu <yuchen@cloudflare.com>"]
license = "Apache-2.0"
edition = "2021"
Expand All @@ -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 }
Expand Down
2 changes: 1 addition & 1 deletion pingora-error/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pingora-error"
version = "0.1.0"
version = "0.2.0"
authors = ["Yuchen Wu <yuchen@cloudflare.com>"]
license = "Apache-2.0"
edition = "2021"
Expand Down
6 changes: 3 additions & 3 deletions 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 <yuchen@cloudflare.com>"]
license = "Apache-2.0"
edition = "2021"
Expand All @@ -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"
4 changes: 2 additions & 2 deletions pingora-http/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pingora-http"
version = "0.1.0"
version = "0.2.0"
authors = ["Yuchen Wu <yuchen@cloudflare.com>"]
license = "Apache-2.0"
edition = "2021"
Expand All @@ -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 = []
Expand Down
2 changes: 1 addition & 1 deletion 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 <pingora@cloudflare.com>"]
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion pingora-limits/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pingora-limits"
version = "0.1.0"
version = "0.2.0"
authors = ["Yuchen Wu <yuchen@cloudflare.com>"]
license = "Apache-2.0"
description = "A library for rate limiting and event frequency estimation"
Expand Down
12 changes: 6 additions & 6 deletions 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 <yuchen@cloudflare.com>"]
license = "Apache-2.0"
edition = "2021"
Expand All @@ -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"
Expand Down
2 changes: 1 addition & 1 deletion pingora-lru/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pingora-lru"
version = "0.1.0"
version = "0.2.0"
authors = ["Yuchen Wu <yuchen@cloudflare.com>"]
license = "Apache-2.0"
edition = "2021"
Expand Down
8 changes: 4 additions & 4 deletions 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 <yuchen@cloudflare.com>"]
license = "Apache-2.0"
edition = "2021"
Expand All @@ -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" }
2 changes: 1 addition & 1 deletion pingora-openssl/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pingora-openssl"
version = "0.1.0"
version = "0.2.0"
authors = ["Yuchen Wu <yuchen@cloudflare.com>"]
license = "Apache-2.0"
edition = "2021"
Expand Down
4 changes: 2 additions & 2 deletions pingora-pool/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pingora-pool"
version = "0.1.0"
version = "0.2.0"
authors = ["Yuchen Wu <yuchen@cloudflare.com>"]
license = "Apache-2.0"
edition = "2021"
Expand All @@ -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"
14 changes: 7 additions & 7 deletions pingora-proxy/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pingora-proxy"
version = "0.1.0"
version = "0.2.0"
authors = ["Yuchen Wu <yuchen@cloudflare.com>"]
license = "Apache-2.0"
edition = "2021"
Expand All @@ -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 }
Expand All @@ -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"] }
Expand Down
2 changes: 1 addition & 1 deletion pingora-runtime/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pingora-runtime"
version = "0.1.0"
version = "0.2.0"
authors = ["Yuchen Wu <yuchen@cloudflare.com>"]
license = "Apache-2.0"
edition = "2021"
Expand Down
2 changes: 1 addition & 1 deletion pingora-timeout/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pingora-timeout"
version = "0.1.0"
version = "0.2.0"
authors = ["Yuchen Wu <yuchen@cloudflare.com>"]
license = "Apache-2.0"
edition = "2021"
Expand Down
14 changes: 7 additions & 7 deletions pingora/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pingora"
version = "0.1.0"
version = "0.2.0"
authors = ["Yuchen Wu <yuchen@cloudflare.com>"]
license = "Apache-2.0"
edition = "2021"
Expand All @@ -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"
Expand Down
2 changes: 1 addition & 1 deletion tinyufo/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "TinyUFO"
version = "0.1.0"
version = "0.2.0"
authors = ["Yuchen Wu <yuchen@cloudflare.com>"]
edition = "2021"
license = "Apache-2.0"
Expand Down

0 comments on commit 3dbdcc6

Please sign in to comment.