sozu/CHANGELOG.md

220 KiB
Raw Permalink Blame History

Changelog

Unreleased

See milestone v1.1.0

1.0.0 - 2024-04-16

This is the first release of Sōzu which is a huge steps since the beginning of the project. We would like to thanks every people involved in the development of Sōzu. The next steps is to implements h2(c) on top of kawa with a rework of session to be able to use http 1.x clients with h2 backends and h2 clients with h2 backends, h2 clients with http 1.x backends.

🌟 Features

  • This release is the first one that use protobuf-everywhere. It means that we are moving out from the old exchange model for sockets (which are data exchanges between main process and workers processes and also main process and control plane process) that use Rust structures that we serialize into json to structures described in protobuf that generate Rust source code and then communicate with binary format. Besides, this work also have some nice side-effects on fork when creating new workers (due to a self-healing or at start) which allow to reduce the time to configure a worker by around 50%. It also introduces a new way to emit access logs in a binary way, see [ dfacdb7 ], [ a6ffebe ], [ fb11245 ], [ 6daf43c ], [ 8e81a02 ], [ 24a941b ], [ 6d160b4 ], [ e382a1c ], [ 4f2d760 ], [ 6d43eb1 ] and [ 5852c6b ].
  • We have reworked emitted logs and access logs format, if you are tools that parse them, you have to take a look at the new one. Besides, it will be easier to parse. Furthermore, we have added color on logs to improve readability, see [ 0885863 ], [ d3eeddc ], [ 3bb3997 ] and [ 5f55561 ].
  • We have bump the minimum Rust supported version to v1.74.0, see [ 2c4363d ], [ 96f5329 ] and [ e6bcfe0 ].
  • We have introduce a way to define custom http response for a wide range of status code, see 3f0bfa1, 4923153, b9df0c1, ee2430f, 3030944, 6023216, 55242ba, 55242ba, 8faa16c, a5058c2, fb6aad9 and a2236d1.
  • We also fix a bug that could occur on some streaming https requests with tcp-keepalive when going through multiple Sōzu which does not flush correctly the ending chunk of data when calling rustls::write_vectored, see d83f399.
  • We also change how works timeout on frontends as it is now closed by the backend, once we have received a first chunk of data, see 6114e17.

🚀 Performance

  • Thanks to the work achieved on Rustls (v0.23.0) with the help of maintainers (a huge thanks to them ❤️), we have gain between 10% and 20% performance on https requests depending of the workload, see [ 7fa680d ].

⛑️ Fixed

  • We have fixed a bug that occurs during http request when doing streaming and tcp keep-alive which prevent to send the close-delimiter on response, see [ 59c0615 ].
  • We have fix a few bugs on certificate replacement and improve the resolution of certificates, see [ 6aa45b9 ].
  • We have fix a bug that involved timeout on frontend sockets which did not take the given value, see [ d20e759 ].

✍️ Changed

  • We have work on errors to have a better context when something happens, see [ ba8b51a ], [ 629551f ] and [ 1c90c04 ].

📚 Documentation

  • We have added some documentation about logs and access logs, see [ d44b227 ] and [ 7241c0e ].
  • We have reworked or improved examples, see [ 31bc55e ] and [ 95624e6 ].
  • We have added some documentation of using Sōzu with firewalld (thanks @obreidenich), see [ 4cba552 ].
  • We have setup a github continuous integration to provides and document a way to benchmark Sōzu (values on the ci are not reliable), see [ 8df9ba5 ].

Changelog

🚀 Performance

  • 7fa680d ] update dependencies, notably rustls [Emmanuel Bosquet] (2024-03-11)

🌟 Features

  • 3f0bfa1 ] Dynamic automatic answers system [Eloi DEMOLIS] (2024-04-05)
  • 4923153 ] Unify template creation [Eloi DEMOLIS] (2024-04-05)
  • b9df0c1 ] add example 404 and 508 errors [Emmanuel Bosquet] (2024-04-05)
  • ee2430f ] make Http[s]ListenerConfig::http_answers optional [Emmanuel Bosquet] (2024-04-05)
  • 3030944 ] Minor changes [Eloi DEMOLIS] (2024-04-05)
  • 6023216 ] create protobuf type CustomHttpAnswers [Emmanuel Bosquet] (2024-04-05)
  • 55242ba ] rename types [Emmanuel Bosquet] (2024-04-05)
  • 8faa16c ] Restore context in logs by moving the fields in HttpContext [Eloi DEMOLIS] (2024-04-05)
  • a5058c2 ] remove 404 and 503 files [Emmanuel Bosquet] (2024-04-05)
  • fb6aad9 ] Move test_https_redirect to e2e, use immutable automatic answers for e2e [Eloi DEMOLIS] (2024-04-05)
  • a2236d1 ] More template variables [Eloi DEMOLIS] (2024-04-05)

Added

  • 90ee05c ] benchmark info logs in the CI [Emmanuel Bosquet] (2024-03-15)
  • a6fde1e ] distinct PEM and X509 variants for CertificateError [Emmanuel Bosquet] (2024-03-15)
  • e793ec6 ] Edit access logs ASCII format, put logs-cache under feature [Eloi DEMOLIS] (2024-03-11)
  • 85e2653 ] implement From for Ulid [Emmanuel Bosquet] (2024-03-11)
  • 756b78b ] create type WebSocketContext [Emmanuel Bosquet] (2024-03-11)
  • 0885863 ] Logger refactor: better structured logs and colored logs [Eloi DEMOLIS] (2024-03-11)
  • dfacdb7 ] protobuf access logs [Emmanuel Bosquet] (2024-03-11)
  • 7c25133 ] create helper function server::worker_response_error [Emmanuel Bosquet] (2024-02-23)
  • a6ffebe ] binary and delimited serialization of prost messages in channels [Emmanuel Bosquet] (2024-02-02)
  • 62f3db3 ] add fields and defaults to ServerConfig [Emmanuel Bosquet] (2024-02-02)
  • fb11245 ] create protobuf type SocketAddress, use everywhere [Emmanuel Bosquet] (2024-02-02)
  • f9ac920 ] add size to ChannelError::BufferFull [Emmanuel Bosquet] (2024-02-02)

Removed

  • c677b10 ] remove duplicate code of HttpsProxy creation [Emmanuel Bosquet] (2024-02-26)
  • 39af839 ] remove useless Serde error in channel module [Emmanuel Bosquet] (2024-02-02)

✍️ Changed

  • 6114e17 ] Move timeout responsibility from front to back only when first bytes are received from the back [Eloi DEMOLIS] (2024-03-20)
  • 0d7f7d6 ] Release v1.0.0-rc.1 [Florentin Dubois] (2024-03-19)
  • bcef3b8 ] chore: update dependencies [Florentin Dubois] (2024-03-14)
  • a806fb6 ] sort cluster information alphabetically when displaying [Emmanuel Bosquet] (2024-03-12)
  • 6daf43c ] write two empty bytes after each protobuf access log [Emmanuel Bosquet] (2024-03-11)
  • 8e81a02 ] rename ProtobufAccessLog::error to 'message' [Emmanuel Bosquet] (2024-03-11)
  • b6ca85b ] apply clippy suggestions for nightly [Emmanuel Bosquet] (2024-03-11)
  • 618bed0 ] apply review: cosmetic changes [Emmanuel Bosquet] (2024-03-11)
  • 182b291 ] Use error_access in lib, add log_access to make it easier [Eloi DEMOLIS] (2024-03-11)
  • 5f55561 ] rename log_access_* variables to access_logs_* [Emmanuel Bosquet] (2024-03-11)
  • d3eeddc ] Small changes mainly relative to logging [Eloi DEMOLIS] (2024-03-11)
  • 3bb3997 ] Move all logging primitives in their own module [Eloi DEMOLIS] (2024-03-11)
  • e6bcfe0 ] set dependency resolver to 2 [Emmanuel Bosquet] (2024-03-11)
  • 96f5329 ] set rust-version to 1.74.0, update Cargo.lock [Emmanuel Bosquet] (2024-03-11)
  • 2c4363d ] bump rust-toolchain to 1.74.0 [Emmanuel Bosquet] (2024-03-11)
  • c6ee01b ] move TCP pool from TcpListener to TcpProxy [Emmanuel Bosquet] (2024-02-26)
  • 1c90c04 ] propagate errors in HttpProxy and HttpsProxy [Emmanuel Bosquet] (2024-02-23)
  • 629551f ] propagate errors in TcpProxy [Emmanuel Bosquet] (2024-02-23)
  • ba8b51a ] HttpsProxy::add_listener returns Result [Emmanuel Bosquet] (2024-02-23)
  • 630b1a7 ] define buffer sizes in u64 [Emmanuel Bosquet] (2024-02-02)
  • 24a941b ] pass ServerConfig to new worker [Emmanuel Bosquet] (2024-02-02)
  • 6d160b4 ] move ServerConfig to sozu_command_lib::config [Emmanuel Bosquet] (2024-02-02)
  • f0ecc54 ] rewrite CommandServer with MIO [Eloi DEMOLIS] (2024-01-30)
  • e382a1c ] translate WorkerRequest and WorkerResponse to protobuf [Emmanuel Bosquet] (2024-02-02)
  • 4f2d760 ] translate ServerConfig in protobuf [Emmanuel Bosquet] (2024-02-02)
  • 6d43eb1 ] SCM sockets transmit listeners in binary format [Emmanuel Bosquet] (2024-02-02)
  • 5852c6b ] pass initial state to workers in protobuf [Emmanuel Bosquet] (2024-02-02)
  • cc0a221 ] apply clippy suggestions, remove unwraps [Emmanuel Bosquet] (2024-02-02)
  • a3fe0d3 ] chore: update dependencies [Florentin Dubois] (2024-04-16)
  • 8d89733 ] chore: update configuration file [Florentin Dubois] (2024-04-16)

⛑️ Fixed

  • d20e759 ] Fix some timeout edge cases [Eloi DEMOLIS] (2024-03-18)
  • 284068d ] fix: fix RUSTSEC-2024-0019 [Dimitris Apostolou] (2024-03-09)
  • 59c0615 ] Fix close propagation on close-delimited responses with front keep-alive [Eloi DEMOLIS] (2024-02-20)
  • 6aa45b9 ] fix and rewrite CertificateResolver [Emmanuel Bosquet] (2024-02-14)
  • e793ec6 ] Edit access logs ASCII format, put logs-cache under feature [Eloi DEMOLIS] (2024-03-11)
  • 85e2653 ] implement From for Ulid [Emmanuel Bosquet] (2024-03-11)
  • 756b78b ] create type WebSocketContext [Emmanuel Bosquet] (2024-03-11)
  • 0885863 ] Logger refactor: better structured logs and colored logs [Eloi DEMOLIS] (2024-03-11)
  • dfacdb7 ] protobuf access logs [Emmanuel Bosquet] (2024-03-11)
  • 7c25133 ] create helper function server::worker_response_error [Emmanuel Bosquet] (2024-02-23)
  • a6ffebe ] binary and delimited serialization of prost messages in channels [Emmanuel Bosquet] (2024-02-02)
  • 62f3db3 ] add fields and defaults to ServerConfig [Emmanuel Bosquet] (2024-02-02)
  • fb11245 ] create protobuf type SocketAddress, use everywhere [Emmanuel Bosquet] (2024-02-02)
  • f9ac920 ] add size to ChannelError::BufferFull [Emmanuel Bosquet] (2024-02-02)
  • d44b227 ] document the logs-cache feature flag [Emmanuel Bosquet] (2024-03-11)
  • 7241c0e ] document the DuplicateOwnership trait [Emmanuel Bosquet] (2024-03-11)
  • 31bc55e ] Add example in command lib to benchmark the logger [Emmanuel Bosquet] (2024-03-11)
  • 4cba552 ] A small, descriptive extension to include firewalld. Avoiding a search for those not using iptables. [obreidenich] (2024-02-21)
  • 8df9ba5 ] CI: Adding a benchmark framework [Guillaume Assier] (2024-02-07)
  • 95624e6 ] Refactor HTTP, HTTPS and TCP example code [Eloi DEMOLIS] (2024-02-02)

🥹 Contributors

Full Changelog: https://github.com/sozu-proxy/sozu/compare/0.15.19..1.0.0

1.0.0-rc.2 - 2024-04-05

This changelog is the second release candidate before the version 1.0.0, it includes a breaking change on the protocol buffer and configuration around definition of custom response when Sōzu answers instead of backends defined in cluster.

🌟 Features

  • We have introduce a way to define custom http response for a wide range of status code, see 3f0bfa1, 4923153, b9df0c1, ee2430f, 3030944, 6023216, 55242ba, 55242ba, 8faa16c, a5058c2, fb6aad9 and a2236d1.
  • We also fix a bug that could occur on some streaming https requests with tcp-keepalive when going through multiple Sōzu which does not flush correctly the ending chunk of data when calling rustls::write_vectored, see d83f399.
  • We also change how works timeout on frontends as it is now closed by the backend, once we have received a first chunk of data, see 6114e17.

Changelog

🌟 Features

  • 3f0bfa1 ] Dynamic automatic answers system [Eloi DEMOLIS] (2024-04-05)
  • 4923153 ] Unify template creation [Eloi DEMOLIS] (2024-04-05)
  • b9df0c1 ] add example 404 and 508 errors [Emmanuel Bosquet] (2024-04-05)
  • ee2430f ] make Http[s]ListenerConfig::http_answers optional [Emmanuel Bosquet] (2024-04-05)
  • 3030944 ] Minor changes [Eloi DEMOLIS] (2024-04-05)
  • 6023216 ] create protobuf type CustomHttpAnswers [Emmanuel Bosquet] (2024-04-05)
  • 55242ba ] rename types [Emmanuel Bosquet] (2024-04-05)
  • 8faa16c ] Restore context in logs by moving the fields in HttpContext [Eloi DEMOLIS] (2024-04-05)
  • a5058c2 ] remove 404 and 503 files [Emmanuel Bosquet] (2024-04-05)
  • fb6aad9 ] Move test_https_redirect to e2e, use immutable automatic answers for e2e [Eloi DEMOLIS] (2024-04-05)
  • a2236d1 ] More template variables [Eloi DEMOLIS] (2024-04-05)

Added

  • 90ee05c ] benchmark info logs in the CI [Emmanuel Bosquet] (2024-03-15)

✍️ Changed

  • 6114e17 ] Move timeout responsibility from front to back only when first bytes are received from the back [Eloi DEMOLIS] (2024-03-20)

⛑️ Fixed

  • d83f399 ] Expose internal rustls buffers to ensure they are flushed [Eloi DEMOLIS] (2024-04-03)

🥹 Contributors

  • @keksoj
  • @Wonshtrum

Full Changelog: https://github.com/sozu-proxy/sozu/compare/1.0.0.-rc.1..1.0.0-rc.2

1.0.0-rc.1 - 2024-03-19

This changelog is the first release candidate before the version 1.0.0, its goal is to allow to migrate smoothly other crates as the sozu-client to be compatible with the protobuf-everywhere part and to be able to make tests on production at Clever-Cloud by doing some A/B testing.

🌟 Features

  • This version is the first one that use protobuf-everywhere. It means that we are moving out from the old exchange model for sockets (which are data exchanges between main process and workers processes and also main process and control plane process) that use Rust structures that we serialize into json to structures described in protobuf that generate Rust source code and then communicate with binary format. Besides, this work also have some nice side-effects on fork when creating new workers (due to a self-healing or at start) which allow to reduce the time to configure a worker by around 50%. It also introduces a new way to emit access logs in a binary way, see [ dfacdb7 ], [ a6ffebe ], [ fb11245 ], [ 6daf43c ], [ 8e81a02 ], [ 24a941b ], [ 6d160b4 ], [ e382a1c ], [ 4f2d760 ], [ 6d43eb1 ] and [ 5852c6b ].
  • We have reworked emitted logs and access logs format, if you are tools that parse them, you have to take a look at the new one. Besides, it will be easier to parse. Furthermore, we have added color on logs to improve readability, see [ 0885863 ], [ d3eeddc ], [ 3bb3997 ] and [ 5f55561 ].
  • We have bump the minimum Rust supported version to v1.74.0, see [ 2c4363d ], [ 96f5329 ] and [ e6bcfe0 ].

⛑️ Fixed

  • We have fixed a bug that occurs during http request when doing streaming and tcp keep-alive which prevent to send the close-delimiter on response, see [ 59c0615 ].
  • We have fix a few bugs on certificate replacement and improve the resolution of certificates, see [ 6aa45b9 ].
  • We have fix a bug that involved timeout on frontend sockets which did not take the given value, see [ d20e759 ].

🚀 Performance

  • Thanks to the work achieved on Rustls (v0.23.0) with the help of maintainers (a huge thanks to them ❤️), we have gain between 10% and 20% performance on https requests depending of the workload, see [ 7fa680d ].

✍️ Changed

  • We have work on errors to have a better context when something happens, see [ ba8b51a ], [ 629551f ] and [ 1c90c04 ].

📚 Documentation

  • We have added some documentation about logs and access logs, see [ d44b227 ] and [ 7241c0e ].
  • We have reworked or improved examples, see [ 31bc55e ] and [ 95624e6 ].
  • We have added some documentation of using Sōzu with firewalld (thanks @obreidenich), see [ 4cba552 ].
  • We have setup a github continuous integration to provides and document a way to benchmark Sōzu (values on the ci are not reliable), see [ 8df9ba5 ].

Changelog

🚀 Performance

  • 7fa680d ] update dependencies, notably rustls [Emmanuel Bosquet] (2024-03-11)

⛑️ Fixed

  • d20e759 ] Fix some timeout edge cases [Eloi DEMOLIS] (2024-03-18)
  • 284068d ] fix: fix RUSTSEC-2024-0019 [Dimitris Apostolou] (2024-03-09)
  • 59c0615 ] Fix close propagation on close-delimited responses with front keep-alive [Eloi DEMOLIS] (2024-02-20)
  • 6aa45b9 ] fix and rewrite CertificateResolver [Emmanuel Bosquet] (2024-02-14)

📚 Documentation

  • d44b227 ] document the logs-cache feature flag [Emmanuel Bosquet] (2024-03-11)
  • 7241c0e ] document the DuplicateOwnership trait [Emmanuel Bosquet] (2024-03-11)
  • 31bc55e ] Add example in command lib to benchmark the logger [Emmanuel Bosquet] (2024-03-11)
  • 4cba552 ] A small, descriptive extension to include firewalld. Avoiding a search for those not using iptables. [obreidenich] (2024-02-21)
  • 8df9ba5 ] CI: Adding a benchmark framework [Guillaume Assier] (2024-02-07)
  • 95624e6 ] Refactor HTTP, HTTPS and TCP example code [Eloi DEMOLIS] (2024-02-02)

Added

  • a6fde1e ] distinct PEM and X509 variants for CertificateError [Emmanuel Bosquet] (2024-03-15)
  • e793ec6 ] Edit access logs ASCII format, put logs-cache under feature [Eloi DEMOLIS] (2024-03-11)
  • 85e2653 ] implement From for Ulid [Emmanuel Bosquet] (2024-03-11)
  • 756b78b ] create type WebSocketContext [Emmanuel Bosquet] (2024-03-11)
  • 0885863 ] Logger refactor: better structured logs and colored logs [Eloi DEMOLIS] (2024-03-11)
  • dfacdb7 ] protobuf access logs [Emmanuel Bosquet] (2024-03-11)
  • 7c25133 ] create helper function server::worker_response_error [Emmanuel Bosquet] (2024-02-23)
  • a6ffebe ] binary and delimited serialization of prost messages in channels [Emmanuel Bosquet] (2024-02-02)
  • 62f3db3 ] add fields and defaults to ServerConfig [Emmanuel Bosquet] (2024-02-02)
  • fb11245 ] create protobuf type SocketAddress, use everywhere [Emmanuel Bosquet] (2024-02-02)
  • f9ac920 ] add size to ChannelError::BufferFull [Emmanuel Bosquet] (2024-02-02)

✍️ Changed

  • 0d7f7d6 ] Release v1.0.0-rc.1 [Florentin Dubois] (2024-03-19)
  • bcef3b8 ] chore: update dependencies [Florentin Dubois] (2024-03-14)
  • a806fb6 ] sort cluster information alphabetically when displaying [Emmanuel Bosquet] (2024-03-12)
  • 6daf43c ] write two empty bytes after each protobuf access log [Emmanuel Bosquet] (2024-03-11)
  • 8e81a02 ] rename ProtobufAccessLog::error to 'message' [Emmanuel Bosquet] (2024-03-11)
  • b6ca85b ] apply clippy suggestions for nightly [Emmanuel Bosquet] (2024-03-11)
  • 618bed0 ] apply review: cosmetic changes [Emmanuel Bosquet] (2024-03-11)
  • 182b291 ] Use error_access in lib, add log_access to make it easier [Eloi DEMOLIS] (2024-03-11)
  • 5f55561 ] rename log_access_* variables to access_logs_* [Emmanuel Bosquet] (2024-03-11)
  • d3eeddc ] Small changes mainly relative to logging [Eloi DEMOLIS] (2024-03-11)
  • 3bb3997 ] Move all logging primitives in their own module [Eloi DEMOLIS] (2024-03-11)
  • e6bcfe0 ] set dependency resolver to 2 [Emmanuel Bosquet] (2024-03-11)
  • 96f5329 ] set rust-version to 1.74.0, update Cargo.lock [Emmanuel Bosquet] (2024-03-11)
  • 2c4363d ] bump rust-toolchain to 1.74.0 [Emmanuel Bosquet] (2024-03-11)
  • c6ee01b ] move TCP pool from TcpListener to TcpProxy [Emmanuel Bosquet] (2024-02-26)
  • 1c90c04 ] propagate errors in HttpProxy and HttpsProxy [Emmanuel Bosquet] (2024-02-23)
  • 629551f ] propagate errors in TcpProxy [Emmanuel Bosquet] (2024-02-23)
  • ba8b51a ] HttpsProxy::add_listener returns Result [Emmanuel Bosquet] (2024-02-23)
  • 630b1a7 ] define buffer sizes in u64 [Emmanuel Bosquet] (2024-02-02)
  • 24a941b ] pass ServerConfig to new worker [Emmanuel Bosquet] (2024-02-02)
  • 6d160b4 ] move ServerConfig to sozu_command_lib::config [Emmanuel Bosquet] (2024-02-02)
  • f0ecc54 ] rewrite CommandServer with MIO [Eloi DEMOLIS] (2024-01-30)
  • e382a1c ] translate WorkerRequest and WorkerResponse to protobuf [Emmanuel Bosquet] (2024-02-02)
  • 4f2d760 ] translate ServerConfig in protobuf [Emmanuel Bosquet] (2024-02-02)
  • 6d43eb1 ] SCM sockets transmit listeners in binary format [Emmanuel Bosquet] (2024-02-02)
  • 5852c6b ] pass initial state to workers in protobuf [Emmanuel Bosquet] (2024-02-02)
  • cc0a221 ] apply clippy suggestions, remove unwraps [Emmanuel Bosquet] (2024-02-02)

Removed

  • c677b10 ] remove duplicate code of HttpsProxy creation [Emmanuel Bosquet] (2024-02-26)
  • 39af839 ] remove useless Serde error in channel module [Emmanuel Bosquet] (2024-02-02)

🥹 Contributors

Full Changelog: https://github.com/sozu-proxy/sozu/compare/0.15.19..1.0.0-rc.1

0.15.19 - 2024-01-25

This changelog merges modifications between 0.15.15 to 0.15.19

Changelog

Added

  • [ 72bfab9 ] setup logging in accept_clients() [Emmanuel Bosquet] (2023-12-13)
  • [ 18ddee3 ] add missing access logs [Emmanuel Bosquet] (2024-01-08)
  • [ 822dcb9 ] CLI: all responses are displayable in JSON [Emmanuel Bosquet] (2023-12-06)
  • [ 1788fac ] add remove_backend test in state module [Emmanuel Bosquet] (2023-12-06)
  • [ 161ca05 ] introduce optional worker_timeout [Emmanuel Bosquet] (2023-11-23)
  • [ b754391 ] create ConfigState::write_requests_to_file [Emmanuel Bosquet] (2023-11-27)

⛑️ Fixed

  • [ 1cb4d53 ] handle backend hangup when responses is still transferring [Emmanuel Bosquet] (2024-01-08)
  • [ 1710f8a ] Fix TCP connection hanging on backend connection error [Eloi DEMOLIS] (2024-01-23)
  • [ 707fbf3 ] Update TCP states to use SessionResult when possible [Eloi DEMOLIS] (2024-01-24)
  • [ 6bd2d85 ] fix(sozu): reset storage buffers on keep-alive requests [Florentin Dubois] (2023-12-07)
  • [ bb1aa11 ] fix(https): panic on failed https upgrade into wss [Florentin Dubois] (2023-12-13)
  • [ ae8c66d ] fix(http): panic on http upgrade into websocket [Florentin Dubois] (2023-12-13)
  • [ 58a7f03 ] Fix: WouldBlock in SocketHandler::socket_write breaks properly [Eloi DEMOLIS] (2023-11-23)
  • [ 17020fb ] Fix panic in view [Eloi DEMOLIS] (2023-11-23)
  • [ 0d82323 ] fix worker status command [Emmanuel Bosquet] (2023-11-23)
  • [ 582ab5b ] Do not set RUST_LOG on logger setup [Eloi DEMOLIS] (2023-12-07)
  • [ 04d3105 ] Sanitize user-agent in access logs [Eloi DEMOLIS] (2024-01-24)
  • [ 10f5433 ] fix timeout issue in the CLI [Emmanuel Bosquet] (2024-01-24)

✍️ Changed

  • [ 23d8171 ] update rustls to 0.22.1 [Emmanuel Bosquet] (2023-12-14)
  • [ b7ef38f ] add no-clusters option on metrics query [Emmanuel Bosquet] (2024-01-24)
  • [ 98b5783 ] chore: update dependencies [Florentin Dubois] (2024-01-25)
  • [ 3a4e4fd ] pass Vec instead of ConfigState to new worker [Emmanuel Bosquet] (2023-11-27)
  • [ b455bbf ] Add SNI and peer address on handshake error logs [Eloi DEMOLIS] (2023-11-28)
  • [ d864012 ] remove main logger [Emmanuel Bosquet] (2023-12-01)
  • [ 505d134 ] remove unused dependencies [Emmanuel Bosquet] (2023-12-04)
  • [ 0e62ff3 ] refactor cli display by creating Response::display [Emmanuel Bosquet] (2023-12-06)
  • [ 95de156 ] display no other lines than JSON [Emmanuel Bosquet] (2023-12-06)
  • [ 86303a2 ] ConfigState::cluster_state return Option [Emmanuel Bosquet] (2023-12-06)
  • [ 4d1500a ] chore: reduce verbosity of a few logs [Florentin Dubois] (2023-12-07)
  • [ 3c6ef35 ] Better logging for parsing errors [Eloi DEMOLIS] (2023-12-07)
  • [ 63e76c7 ] chore: reduce logging level [Florentin Dubois] (2023-12-08)
  • [ 0f0ed1f ] workers return only one response when dispatching a request [Emmanuel Bosquet] (2023-12-12)
  • [ ef6e99a ] chore(http,https): update warning message with frontend token [Florentin Dubois] (2023-12-13)
  • [ 32d8e3a ] chore: update rustls to 0.21.10 [Florentin Dubois] (2023-12-13)
  • [ c887666 ] better logging of back error [Emmanuel Bosquet] (2023-11-22)
  • [ 4a444b1 ] Mutualize MAX_LOOP_ITERATIONS in config [Eloi DEMOLIS] (2023-11-23)
  • [ 730f0c3 ] Adjust logging level [Eloi DEMOLIS] (2023-11-23)

🥹 Contributors

  • @keksoj
  • @FlorentinDUBOIS
  • @Wonshtrum

Full Changelog: https://github.com/sozu-proxy/sozu/compare/0.15.15...0.15.19

0.15.15 - 2023-11-15

This changelog merges all modifications between versions 0.15.13 and 0.15.15

  • Since the deployment of the version 0.15.x at Clever Cloud, we have seen some performance issues around tls handshake and we made several efforts to dig in and fix them, see 8364454 and 92a277c.
  • We have fix a bug when we replace a tls certificate that resolve the old onem once replaced, see 50afe7a
  • We also allow to choose the number of ticket tls given to a new tls handshake, see 0c3c129.
  • Update the systemd service to set start interval and burst, see af5ea00.
  • We also document a way to benchmark sozu, see e754a15.

Changelog

🚀 Performance

  • [ 8364454 ] Use rustls::Writer::write_vectored to reduce writev syscalls [Eloi DEMOLIS] (2023-11-08)
  • [ 92a277c ] store certificates in parsed form in CertificateResolver [Eloi DEMOLIS] (2023-11-14)

⛑️ Fixed

  • [ 50afe7a ] fix(tls): certificate replacement and remove is still-in-use security [Florentin Dubois] (2023-11-14)

✍️ Changed

  • [ 0c3c129 ] make send_tls13_tickets configurable [Emmanuel Bosquet] (2023-11-09)
  • [ 1406954 ] Remove rustls backpressuring flag [Eloi DEMOLIS] (2023-11-08)
  • [ 9b29dcf ] proper logging of RouterError::RouteNotFound [Emmanuel Bosquet] (2023-11-13)
  • [ af5ea00 ] distribution(systemd): set start limit interval and burst [Florentin Dubois] (2023-11-14)
  • [ cc12789 ] comments and renaming in lib::tls [Emmanuel Bosquet] (2023-11-14)

📚 Documentation

  • [ e754a15 ] document benchmarking technique [Emmanuel Bosquet] (2023-11-10)

🥹 Contributors

  • @keksoj
  • @FlorentinDUBOIS
  • @Wonshtrum

Full Changelog: https://github.com/sozu-proxy/sozu/compare/0.15.13...0.15.15

0.15.13 - 2023-10-27

This changelog merge all modifications between versions 0.15.6 and 0.15.13

Changelog

📚 Documentation/sozu/commit/be2cfe6da18d7098565b2526b3127651eb8384b9) ] Add 507 default answer [Eloi DEMOLIS] (2023-10-24)

⛑️ Fixed

  • [ 5d2f3b9 ] fix misleading CLI line on state saving [Emmanuel Bosquet] (2023-10-27)
  • [ 7b61c04 ] build: add missing assets [Florentin Dubois] (2023-10-27)
  • [ 72e9d44 ] Don't override X-Forwarded-Proto and X-Forwarded-Port [Eloi DEMOLIS] (2023-10-26)
  • [ bf026ee ] Add a default certificate when none are found for a host [Eloi DEMOLIS] (2023-10-27)
  • [ 76e0e7d ] Fix early connect trials [Eloi DEMOLIS] (2023-10-24)
  • [ 0bdf61d ] fix cluster metrics [Emmanuel Bosquet] (2023-10-24)
  • [ 89bf73a ] fix(timeout): implements cancel on drop [Florentin Dubois] (2023-10-23)
  • [ 1196a90 ] include TCP clusters in command 'cluster list' [Emmanuel Bosquet] (2023-09-19)
  • [ e562299 ] Fix TrieNode wildcard and regexp management [Eloi DEMOLIS] (2023-10-17)
  • [ 4c47cfc ] fix the display of non-existing cluster information in cluster list [Emmanuel Bosquet] (2023-10-13)
  • [ cda2f01 ] Fix X-Forwarded-Port when not present [Eloi DEMOLIS] (2023-10-20)
  • [ ea0b8af ] fix(rustls): read buffer if we received a bufffer full error instead of processing new packets [Florentin Dubois] (2023-10-21)
  • [ 437eb12 ] fix: allow to read [Florentin Dubois] (2023-10-21)

✍️ Changed

  • [ 8854576 ] Add log on suspicious X-Forwarded-Proto and Port [Eloi DEMOLIS] (2023-10-27)
  • [ ea6bacd ] Get Subject Alternative Names from extensions [Eloi DEMOLIS] (2023-10-25)
  • [ 8595cf9 ] Remove early read on TLS upgrade [Eloi DEMOLIS] (2023-10-24)
  • [ 9648cf0 ] enable cluster metrics by default [Emmanuel Bosquet] (2023-10-23)
  • [ 6b53071 ] save 4xx and 5xx status codes in cluster metrics [Emmanuel Bosquet] (2023-10-23)
  • [ a1d60b2 ] more sensible CLI defaults params in config.toml [Emmanuel Bosquet] (2023-09-21)
  • [ 641daa3 ] send logging level change requests to workers [Emmanuel Bosquet] (2023-10-18)
  • [ 887babe ] chore: increase logs on access error [Florentin Dubois] (2023-10-21)

📚 Documentation

  • [ 9301048 ] doc(changelog): add 0.15.6 entry [Florentin Dubois] (2023-10-11)

🥹 Contributors

  • @keksoj
  • @FlorentinDUBOIS
  • @Wonshtrum

Full Changelog: https://github.com/sozu-proxy/sozu/compare/0.15.6...0.15.13

0.15.6 - 2023-10-11

⛑️ Fixed

  • Fix behaviour on missing X-Forwarded-Proto and X-Forwarded-Port, we add them in that case, see c09e17a.
  • Fix behaviour on kawa parser when we detect a header Content-Length on HEAD requests, see 7d89372.

Changelog

⛑️ Fixed

  • [ c09e17a ] Fix X-Forwarded-Proto and X-Forwarded-Port (add them when not present) [Eloi DEMOLIS] (2023-10-11)
  • [ 7d89372 ] Fix responses to head requests (ignore body length) [Eloi DEMOLIS] (2023-10-11)

✍️ Changed

  • [ a52e750 ] doc(changelog): add 0.15.5 entry [Florentin Dubois] (2023-09-21)
  • [ 4ffaf2b ] chore: update dependencies [Florentin Dubois] (2023-10-11)
  • [ 6de9cf5 ] chore: update dependencies [Florentin Dubois] (2023-09-21)

🥹 Contributors

  • @FlorentinDUBOIS
  • @Wonshtrum

Full Changelog: https://github.com/sozu-proxy/sozu/compare/0.15.5...0.15.6

0.15.5 - 2023-09-21

⛑️ Fixed

We fix a bug that can occurs with pki using T.61 charset, see a5412b9.

Changelog

⛑️ Fixed

  • [ a5412b9 ] fix(command): retrieve name and san from slice [Florentin Dubois] (2023-09-21)
  • [ 24c4407 ] chore: update changelog to add 0.15.4 [Florentin Dubois] (2023-09-13)
  • [ 6de9cf5 ] chore: update dependencies [Florentin Dubois] (2023-09-21)

🥹 Contributors

  • @FlorentinDUBOIS

Full Changelog: https://github.com/sozu-proxy/sozu/compare/0.15.4...0.15.5

0.15.4 - 2023-09-13

🌟 Features

⛑️ Fixed

Changelog

🌟 Features

  • [ 9df3f1d ] introduce SIMD as default feature [Emmanuel Bosquet] (2023-09-13)

Added

  • [ 2b84a4b ] create PortProvider in e2e tests [Emmanuel Bosquet] (2023-09-12)

✍️ Changed

  • [ 31c26b4 ] remove buffer_queue, useless since introduction of kawa [Emmanuel Bosquet] (2023-09-13)
  • [ c25d483 ] remove unused dependencies [Emmanuel Bosquet] (2023-09-13)
  • [ f9c4ddb ] update dependencies [Emmanuel Bosquet] (2023-09-13)
  • [ 90e3bc7 ] cargo fmt [Emmanuel Bosquet] (2023-09-13)
  • [ 4aceb86 ] remove serial aspect of e2e tests [Emmanuel Bosquet] (2023-09-12)
  • [ f0661a5 ] update dependencies [Emmanuel Bosquet] (2023-09-11)
  • [ 02892b8 ] set rust-toolchain and rust-version to 1.70.0 [Emmanuel Bosquet] (2023-09-11)

🚀 Refactored

  • [ 5b14713 ] merge use statements in kawa_h1::answers [Emmanuel Bosquet] (2023-09-13)
  • [ 001aa89 ] remove useless test crate import [Emmanuel Bosquet] (2023-09-13)
  • [ 8c164f9 ] use TryFrom in prost::Decode [Emmanuel Bosquet] (2023-09-13)

⛑️ Fixed

  • [ 818bc48 ] fix test for 101 HTTP behavior [Emmanuel Bosquet] (2023-09-13)
  • [ daaeb19 ] remove skipping of certificate update in GenericCertificateResolver [Emmanuel Bosquet] (2023-09-12)
  • [ 56dce47 ] fix 103 early hint e2e test [Emmanuel Bosquet] (2023-09-12)

📚 Documentation

  • [ d2f1621 ] fix(readme): Define covered work interpretation #764 [Steven LE ROUX] (2023-08-30)
  • [ e9c185e ] remove doc lines about a removed systemd script [Emmanuel Bosquet] (2023-08-24)
  • [ bd5703a ] fix doc link to systemd unit file [Emmanuel Bosquet] (2023-08-24)

🥹 Contributors

  • @keksoj
  • @Wonshtrum
  • @FlorentinDUBOIS

Full Changelog: https://github.com/sozu-proxy/sozu/compare/0.15.3...0.15.4

0.15.3 - 2023-08-09

🌟 Features

⛑️ Fixed

  • Fix the loading of configuration from a file that was limited to the buffer size, see df69ba6.
  • Fix the display of domain names in the command line, see 14868dd and c738545.

Changelog

Added

  • [ b8e1017 ] fix metrics macros import scopes [hcaumeil] (2023-08-02)
  • [ 471c46f ] renaming metrics for consistancy [hcaumeil] (2023-08-02)
  • [ 9aee4da ] make http status metrics and access logs metrics cluster related [hcaumeil] (2023-08-02)
  • [ 11ff5bd ] add user-agent in access logs [hcaumeil] (2023-08-02)
  • [ 8334bc7 ] add path matching time metrics [hcaumeil] (2023-08-02)
  • [ 6df1802 ] rename metric connections.error to backend.connections.error [hcaumeil] (2023-08-02)
  • [ e8caac8 ] make http.301.redirection metric cluster related [hcaumeil] (2023-08-02)
  • [ 295c2b6 ] cleaner error handling [hcaumeil] (2023-08-03)
  • [ 0acf06d ] better formating [hcaumeil] (2023-08-03)
  • [ 3feeca8 ] variable rename for clarity [hcaumeil] (2023-08-03)
  • [ 182b579 ] rename up and down metrics for clarity [hcaumeil] (2023-08-08)
  • [ c2b4c9c ] make some http 4.x.x status metrics clustered (401,408,413) [hcaumeil] (2023-08-08)
  • [ 0ecf4cc ] chore: print user-agent as a tag value in access logs [Florentin Dubois] (2023-08-08)

🚀 Refactored

  • [ e7b530d ] create CertificateError for the certificate module [Emmanuel Bosquet] (2023-07-31)
  • [ d2e1dcc ] remove anyhow from sozu_command_lib dependencies [Emmanuel Bosquet] (2023-07-31)
  • [ d0389d8 ] add thiserror to ConfigState::dispatch [Emmanuel Bosquet] (2023-07-31)
  • [ 447bed5 ] create ScmSocketError for module scm_socket [Emmanuel Bosquet] (2023-07-31)
  • [ aa55b97 ] create RequestError for the request module [Emmanuel Bosquet] (2023-07-31)
  • [ 0a92877 ] create FrontendFromRequestError [Emmanuel Bosquet] (2023-07-31)
  • [ a04fe34 ] create ServerBindError in socket module [Emmanuel Bosquet] (2023-07-31)
  • [ e1e7ce2 ] create RouterError, ProxyError, extend ListenerError [Emmanuel Bosquet] (2023-07-31)
  • [ bdde240 ] create BackendConnectionError and RetrieveClusterError [Emmanuel Bosquet] (2023-07-31)
  • [ d109ccc ] create MetricError in metrics module [Emmanuel Bosquet] (2023-07-31)
  • [ bda6913 ] put struct Backend in backends module, create BackendError [Emmanuel Bosquet] (2023-07-31)
  • [ cc341e3 ] follow review to the error management [Emmanuel Bosquet] (2023-07-31)
  • [ 5c7a8ef ] create ChannelError [Emmanuel Bosquet] (2023-07-31)
  • [ b919515 ] create ConfigError for the config module [Emmanuel Bosquet] (2023-07-31)
  • [ f9353d2 ] refactor: use CertificateError instead of ParseTlsVersionError [Florentin Dubois] (2023-08-04)

⛑️ Fixed

  • [ df69ba6 ] fix parsing in LoadState [Emmanuel Bosquet] (2023-07-28)
  • [ 14868dd ] fix(tls): use right method to get cn and san attributes [Florentin Dubois] (2023-08-04)
  • [ c738545 ] fix: retrieve cn and san attributes to display them in command line [Florentin Dubois] (2023-08-04)

✍️ Changed

  • [ 21d3609 ] chore: update changelog [Florentin Dubois] (2023-07-17)
  • [ e060e2b ] chore: update year of changelog entries [Florentin DUBOIS] (2023-07-18)
  • [ 06a214f ] comment out proxy protocol v1 tests since v1 is not used in sozu [Emmanuel Bosquet] (2023-07-20)
  • [ 6b89eca ] rename CustomError to ParseError [Emmanuel Bosquet] (2023-07-27)
  • [ c60f5ee ] build: increase minimum supported rust version to 1.67.0 [Florentin Dubois] (2023-08-04)
  • [ 7aab06d ] chore: update dependencies [Florentin Dubois] (2023-08-04)
  • [ df5904e ] chore: update dependencies [Florentin Dubois] (2023-08-07)
  • [ 2539cfb ] styles(command): remove unused imports [Florentin Dubois] (2023-08-07)
  • [ 9c2cbcc ] Remove most clippy warnings, remove front_readiness and back_readiness getters [Eloi DEMOLIS] (2023-08-08)
  • [ b80c7e8 ] chore: update clap to 4.3.21 [Florentin Dubois] (2023-08-09)
  • [ 8a5fb9a ] release: v0.15.3 [Florentin Dubois] (2023-08-09)

📚 Documentation

  • [ 0b0fbcb ] doc: add documentation on tls-related functions [Florentin Dubois] (2023-08-04)

🥹 Contributors

  • @keksoj
  • @hcaumeil
  • @Wonshtrum
  • @FlorentinDUBOIS

Full Changelog: https://github.com/sozu-proxy/sozu/compare/0.15.2...0.15.3

0.15.2 - 2023-07-17

⛑️ Fixed

  • We have found out a bug around the upgrade from proxy-protocol to http, see 211db27.

Changelog

⛑️ Fixed

  • [ 211db27 ] Fix empty interest on expect proxy proto upgrade [Eloi DEMOLIS] (2023-07-17)

✍️ Changed

  • [ 0a31489 ] chore(http): reduce log verbosity around the http close method [Florentin Dubois] (2023-07-13)
  • [ 748bf0f ] chore: update dependencies [Florentin Dubois] (2023-07-17)
  • [ c6446e1 ] chore: add changelog entry for release v0.15.1 [Florentin Dubois] (2023-07-11)

🥹 Contributors

  • @Wonshtrum
  • @FlorentinDUBOIS

Full Changelog: https://github.com/sozu-proxy/sozu/compare/0.15.1...0.15.2

0.15.1 - 2023-07-11

🌟 Features

  • We have reduce the number of noisy logs to focus on what is really important on Sōzu, see [ 39f4170 ], [ 362cd82 ] and [ c92d6bd ].
  • We have added the 100 Continue use case in e2e tests to ensure no regression on it, see [ c92d6bd ].

⛑️ Fixed

  • We have identified a bug that create a loop on cluster that have the https redirect enabled, see [ 675c99d ].

Changelog

✍️ Changed

  • [ 5a3b9b2 ] Update changelog to add v0.15.0 [Florentin Dubois] (2023-06-23)
  • [ dfbd4b0 ] chore: update dependencies [Florentin Dubois] (2023-06-30)
  • [ 1753869 ] ci: continue ci even if rust nightly build fail [Florentin Dubois] (2023-06-30)
  • [ 39f4170 ] comments on logging macros [Emmanuel Bosquet] (2023-07-03)
  • [ 362cd82 ] chore(https): reduce log level for debug logs [Florentin Dubois] (2023-07-11)
  • [ 0d33f89 ] chore: update dependencies [Florentin Dubois] (2023-07-11)

Added

  • [ c92d6bd ] Ignore 107 error on front socket, add 100-continue case in e2e tests [Eloi DEMOLIS] (2023-07-07)

🚀 Refactored

  • [ b26d34c ] rename parse_one_command to parse_one_request [Emmanuel Bosquet] (2023-07-03)

⛑️ Fixed

  • [ 675c99d ] fix: redirect to https only if the listener is a http [Florentin Dubois] (2023-07-11)
  • [ 45e97a9 ] fix(os-build): add missing protobuf dependency [Florentin Dubois] (2023-06-30)
  • [ fa5a910 ] fix(os-build): add missing protobuf dependency [Florentin Dubois] (2023-06-30)
  • [ 97034bd ] fix: update start_tcp_worker to use TCPListen variant of Protocol enum [Florentin Dubois] (2023-07-11)

🥹 Contributors

  • @Wonshtrum
  • @Keksoj
  • @FlorentinDUBOIS

Full Changelog: https://github.com/sozu-proxy/sozu/compare/0.15.0...0.15.1

0.15.0 - 2023-06-23

🌟 Features

  • We have added on the command line a way to check for certificate validity that print the "not after" and "not before" field of the certificate, see 8ea3768
  • This release is also the first one of that use the crate kawa to parse HTTP requests and translate them into an intermediate representation. It will be a foundation of the H2 integration in Sōzu, see 144bdb6, 5ac6fd7, 5ac6fd7, 1cff096, c4fbef0, 5c17acf, b8fb52e, cd55235, 3eec22c, dc78bc0, 1b3bbf2 and 737072f.
  • We have updated the packaging for Arch Linux, Docker, Fedora, Exherbo and systemd, see f2176a3, 81f25b6 and d088468

⛑️ Fixed

  • We have fixed some issues that Mac OS users could be met, see a93f66e and 0b435b6.
  • We have also reduce the number of logs that Sōzu could be create using debug logging level as it may slow down it in few cases, see 09b0bf0.

Breaking changes

  • We have renamed the command query cluster into cluster list, see cf5964b.
  • We have renamed the command query certifcate into certificate list, see ec6c58e and acdc8c9.

Changelog

🌟 Features

  • [ 8ea3768 ] CLI: show certificate validity [Emmanuel Bosquet] (2023-05-22)
  • [ 144bdb6 ] First integration of HTX in H1 state [Eloi DEMOLIS] (2023-06-05)
  • [ 5ac6fd7 ] Continue HTX integration for H1: [Eloi DEMOLIS] (2023-06-05)
  • [ 1cff096 ] Remove unused macros [Eloi DEMOLIS] (2023-06-05)
  • [ c4fbef0 ] Continue HTX (now Kawa) integration: [Eloi DEMOLIS] (2023-06-05)
  • [ 5c17acf ] Continue Kawa integration: [Eloi DEMOLIS] (2023-06-05)
  • [ b8fb52e ] Continue Kawa integration: [Eloi DEMOLIS] (2023-06-05)
  • [ cd55235 ] Add e2e test max_connections, add accept timeout on e2e sync_backend [Eloi DEMOLIS] (2023-06-05)
  • [ 3eec22c ] Revisit HTTP timeouts, move Checkout synching to also benifit WSS [Eloi DEMOLIS] (2023-06-05)
  • [ dc78bc0 ] Propagate AcceptError if no Checkout could be assigned to new HTTP session [Eloi DEMOLIS] (2023-06-05)
  • [ 1b3bbf2 ] Support 103 Responses: [Eloi DEMOLIS] (2023-06-16)
  • [ 737072f ] introduce access_logs.count metric [Emmanuel Bosquet] (2023-06-16)

✍️ Changed

  • [ f193370 ] test ConfigState::get_certificate_by_fingerprint [Emmanuel Bosquet] (2023-05-22)
  • [ ca18682 ] query the state for a certificate, by domain [Emmanuel Bosquet] (2023-05-22)
  • [ 308f22f ] remove type CertificateWithNames [Emmanuel Bosquet] (2023-05-22)
  • [ 3286204 ] display certificates from the state in a table [Emmanuel Bosquet] (2023-05-22)
  • [ 2863c31 ] CLI: query all certificates in the state [Emmanuel Bosquet] (2023-05-22)
  • [ a71f485 ] query certificates from the state with fingerprint [Emmanuel Bosquet] (2023-05-22)
  • [ 294c164 ] Update gitignore [Florentin Dubois] (2023-05-23)
  • [ ffcec1c ] chore: update dependencies [Florentin Dubois] (2023-06-22)
  • [ b73122b ] chore: update dependencies [Florentin Dubois] (2023-06-22)
  • [ cdc4e29 ] chore: update dependencies [Florentin Dubois] (2023-06-22)
  • [ 3c56fbc ] chore: update dependencies [Florentin Dubois] (2023-06-22)

Removed

  • [ 774d1af ] Remove legacy folder and script [Florentin Dubois] (2023-05-23)

Breaking changes

  • [ cf5964b ] transform CLI command "query clusters" to "cluster get" [Emmanuel Bosquet] (2023-05-22)
  • [ acdc8c9 ] transform CLI command "query certificates" to "certificate get" [Emmanuel Bosquet] (2023-05-22)
  • [ ec6c58e ] CLI: rename 'clusters get' to 'clusters list', same for certificates [Emmanuel Bosquet] (2023-05-22)

Added

  • [ 2f79f3c ] create ConfigState::get_certificates_by_domain_name [Emmanuel Bosquet] (2023-05-22)
  • [ 787ae9e ] implement Display for CertificateWithNames [Emmanuel Bosquet] (2023-05-22)
  • [ 1797600 ] implement From for Request [Emmanuel Bosquet] (2023-05-22)
  • [ c19ef26 ] rename order_request to send_request [Emmanuel Bosquet] (2023-05-22)
  • [ 538653f ] Create state directory and file if it does not exists [Florentin Dubois] (2023-05-23)
  • [ b34b60f ] count request types received in ConfigState [Emmanuel Bosquet] (2023-06-01)
  • [ 3a92069 ] define defaults in sozu_command_lib::config [Emmanuel Bosquet] (2023-06-02)
  • [ f6e011f ] Add socketstats unittest [Eloi DEMOLIS] (2023-06-05)

📚 Documentation

  • [ de7660d ] doc: Changed all instances of SSL to TLS. [Jonathan Davies] (2023-05-19)

🚀 Refactored

  • [ 9085a20 ] isolate method ConfigState::list_listeners [Emmanuel Bosquet] (2023-05-19)
  • [ c85f65f ] isolate method ConfigState::list_frontends [Emmanuel Bosquet] (2023-05-19)
  • [ e24659d ] introduce type QueryCertificatesFilters [Emmanuel Bosquet] (2023-05-22)
  • [ 9d554a5 ] rename ContentType::Certificates to CertificatesByAddress [Emmanuel Bosquet] (2023-05-22)
  • [ 4776d5f ] merge certificate types in CertificatesWithFingerprints [Emmanuel Bosquet] (2023-05-22)
  • [ 91dc12d ] CertificatesMatchingADomainName contains CertificateAndKey [Emmanuel Bosquet] (2023-05-22)
  • [ 721a951 ] merge request types into RequestType::QueryCertificatesFromWorkers [Emmanuel Bosquet] (2023-05-22)
  • [ fcbe244 ] CLI: simplify display::print_cluster_responses [Emmanuel Bosquet] (2023-05-22)
  • [ 57a0fc6 ] Format GitHub Action workflow [Florentin Dubois] (2023-05-23)
  • [ f2176a3 ] Update systemd services and configuration [Florentin Dubois] (2023-05-23)
  • [ 81f25b6 ] Update Arch Linux packaging [Florentin Dubois] (2023-05-23)
  • [ 458bb5a ] Update RPM and selinux packaging [Florentin Dubois] (2023-05-23)
  • [ d088468 ] Update Docker image [Florentin Dubois] (2023-05-23)
  • [ fe9097e ] Apply clippy suggestions [Eloi DEMOLIS] (2023-06-05)
  • [ 72f200b ] Refactor access logs: [Eloi DEMOLIS] (2023-06-05)
  • [ 0ff7b31 ] rename MetricData to MetricValue [Emmanuel Bosquet] (2023-06-16)

⛑️ Fixed

  • [ 584e0bf ] fix display of hex fingerprint in the CLI [Emmanuel Bosquet] (2023-05-22)
  • [ a93f66e ] Fix some MacOS related issues [Eloi DEMOLIS] (2023-06-14)
  • [ 0b435b6 ] Fix some MacOS related warnings [Eloi DEMOLIS] (2023-06-14)
  • [ 09b0bf0 ] chore: decrease logging verbosity [Florentin Dubois] (2023-06-22)

🥹 Contributors

  • @Wonshtrum
  • @Keksoj
  • @FlorentinDUBOIS

Full Changelog: https://github.com/sozu-proxy/sozu/compare/0.14.3...0.15.0

0.14.3 - 2023-05-17

🌟 Features

✍️ Changed

Removed

  • We have removed the "acme" sub command of sozu to help us to completely remove openssl dependency on OpenSSL, see d5297dd, 106d3c8 and the issue #926

Breaking changes

  • As we changed the communication format from json to protobuf, we could not keep the compatibility with elder version. However, as we used protobuf now, we will be able to support evolutions and changes without creating a breaking change.

Changelog

Added

  • [ f0704ef ] Add default variables [tazou] (2021-06-22)
  • [ 6616b77 ] add context to HTTP and HTTPS listener activation [Emmanuel Bosquet] (2022-12-09)
  • [ 2f4f769 ] add protobuf to Dockerfile image [Emmanuel Bosquet] (2023-05-03)
  • [ 08504aa ] add rust-version and rust-toolchain [Emmanuel Bosquet] (2023-05-05)
  • [ b198efb ] Docker build and push to Docker Hub in the CI [Emmanuel Bosquet] (2022-12-09)
  • [ b260c8c ] push docker build to docker hub only when merging to main [Emmanuel Bosquet] (2022-12-09)
  • [ b5fb1d9 ] Simple e2e testing framework, passthrough and corner case tests [Eloi DEMOLIS] (2023-01-10)
  • [ 146dd32 ] make get_cluster_ids_by_domain a method of ConfigState [Emmanuel Bosquet] (2023-05-04)
  • [ ebeabc4 ] make get_certificate a method of ConfigState [Emmanuel Bosquet] (2023-05-04)
  • [ c4c51fa ] list HTTP, HTTPS and TCP listeners in the CLI [Emmanuel Bosquet] (2023-01-12)
  • [ 7b568dd ] cli: simplify request sending, remove boilerplate [Emmanuel Bosquet] (2023-01-16)
  • [ 7e24d12 ] PR feedback [Tim Bart] (2022-12-18)

Removed

  • [ 106d3c8 ] chore(acme): remove acme command [Florentin Dubois] (2023-05-04)
  • [ 5bf36f5 ] remove todo macros in bin/scr/ctl/command.rs [Emmanuel Bosquet] (2023-01-16)

✍️ Changed

  • [ 42fa3f2 ] chore(archlinux): update packaging [Florentin Dubois] (2023-01-23)
  • [ b7e2f17 ] chore(docker): update packaging [Florentin Dubois] (2023-01-23)
  • [ e5465e4 ] chore(rpm): update packaging [Florentin Dubois] (2023-01-23)
  • [ 6c87883 ] Update generate.sh [tazou] (2021-06-22)
  • [ 1304914 ] Update command/src/proxy.rs [Tim Bart] (2022-12-20)
  • [ 3e48735 ] remove unsafe for get_executable_path on macOS [Tim Bart] (2022-12-19)
  • [ 95f7019 ] Github CI: use stable toolchain to build the doc [Emmanuel Bosquet] (2023-03-22)
  • [ 5698e14 ] chore(lib): bump dependencies [Florentin Dubois] (2023-05-03)
  • [ c7fd33d ] chore(command): bump dependencies [Florentin Dubois] (2023-05-03)
  • [ 9ca3cda ] chore(e2e): bump dependencies [Florentin Dubois] (2023-05-03)
  • [ 4a89060 ] chore(bin): bump dependencies [Florentin Dubois] (2023-05-03)
  • [ 78f1647 ] update rustls to 0.21.0 [Emmanuel Bosquet] (2023-04-12)
  • [ 6d5215a ] Update dependencies [Florentin Dubois] (2023-02-06)
  • [ b6bc86d ] build protobuf types with prost-build, without tonic [Emmanuel Bosquet] (2023-04-12)
  • [ d5297dd ] chore(e2e): use rustls instead of openssl [Florentin Dubois] (2023-05-04)
  • [ b978a89 ] get TcpFrontends::tags out of its Option<> [Emmanuel Bosquet] (2023-05-04)
  • [ 9cd613c ] Update lib/src/protocol/http/mod.rs [Eloi Démolis] (2023-04-13)
  • [ b89f4f7 ] Update lib/src/protocol/http/mod.rs [Eloi Démolis] (2023-04-13)
  • [ a1c02b6 ] remove resolved TODOs [Emmanuel Bosquet] (2023-05-04)

📚 Documentation

  • [ 2609746 ] add documenting comments [Emmanuel Bosquet] (2022-12-16)
  • [ 057eac4 ] basic crate documentation on sozu [Emmanuel Bosquet] (2023-05-09)
  • [ 432b22b ] documenting comments on main process upgrade, remove useless comments [Emmanuel Bosquet] (2022-12-16)
  • [ 91dc44d ] Remove mentions of sozuctl [Sykursen] (2023-03-01)
  • [ 78a6363 ] document protobuf in the sozu-command-lib README [Emmanuel Bosquet] (2023-05-03)
  • [ 3e93455 ] doc: use sozu instead of sozuctl [Florentin Dubois] (2023-01-23)
  • [ 5032973 ] correct formatting in how_to_use.md [Emmanuel Bosquet] (2023-05-03)
  • [ 17f7cb6 ] rewrite the sozu_lib documentation [Emmanuel Bosquet] (2023-05-09)

🚀 Refactored

  • [ 319119a ] abstract out HTTP and HTTPS notify methods [Emmanuel Bosquet] (2022-12-08)
  • [ 03085ea ] error propagation on HTTP and HTTPS frontend add and remove [Emmanuel Bosquet] (2022-12-08)
  • [ ffb5384 ] rename ConfigState::handle_order to ConfigState::dispatch [Emmanuel Bosquet] (2022-12-16)
  • [ 1c9f785 ] remove the init_workers function [Emmanuel Bosquet] (2022-12-16)
  • [ 1732b5d ] rename command::proxy module to command::worker [Emmanuel Bosquet] (2023-03-08)
  • [ e3c8bec ] remove optional worker id from CommandRequest [Emmanuel Bosquet] (2023-03-08)
  • [ efb9c5d ] rename CommandRequest to ClientRequest [Emmanuel Bosquet] (2023-03-08)
  • [ 7759984 ] flatten ProxyRequestOrder variants into RequestContent [Emmanuel Bosquet] (2023-03-08)
  • [ 1d5c72e ] remove id and version from Requests sent to sozu [Emmanuel Bosquet] (2023-03-09)
  • [ 1b07534 ] Remove @BlackYoup from code owners [Florentin DUBOIS] (2023-03-09)
  • [ a1a801e ] put Query variants into Order, remove Query [Emmanuel Bosquet] (2023-03-09)
  • [ 9dc490f ] sozu_command_lib: rename command module to order [Emmanuel Bosquet] (2023-03-10)
  • [ 4bd9c6f ] segregate types in the order and response modules [Emmanuel Bosquet] (2023-03-10)
  • [ 1421f6c ] rename sozu::Response to sozu::Advancement [Emmanuel Bosquet] (2023-03-13)
  • [ a39d905 ] rename sozu_command_lib::CommandResponse to Response [Emmanuel Bosquet] (2023-03-13)
  • [ 43dfd6e ] rename sozu_command_lib::order module to request [Emmanuel Bosquet] (2023-03-13)
  • [ 6437a69 ] rename sozu::command::orders to sozu::command::requests [Emmanuel Bosquet] (2023-03-13)
  • [ 4ec1b21 ] sozu::Worker::is_not_stopped_or_stopping() method [Emmanuel Bosquet] (2023-03-13)
  • [ c4dbf90 ] method Request::is_a_stop() [Emmanuel Bosquet] (2023-03-13)
  • [ 6910aaf ] remove worker.rs [Emmanuel Bosquet] (2023-03-13)
  • [ 137ae7f ] return error if no worker is found when reloading configuration [Emmanuel Bosquet] (2023-03-13)
  • [ aeb2f2e ] remove useless ProxyEvent, redundant with Event [Emmanuel Bosquet] (2023-03-13)
  • [ 7d9b0f5 ] use type ResponseStatus for ProxyResponse [Emmanuel Bosquet] (2023-03-13)
  • [ 755716c ] rename sozu::Worker::is_not_stopped_or_stopping to is_active [Emmanuel Bosquet] (2023-03-16)
  • [ b2e0a6b ] build Config using a ConfigBuilder [Emmanuel Bosquet] (2023-03-16)
  • [ 4509bbe ] sozu_command_lib::config::FileConfig::load_from_path returns anyhow::Result [Emmanuel Bosquet] (2023-03-16)
  • [ c1f5b6e ] parse String to SocketAddr in config::Listener [Emmanuel Bosquet] (2023-03-16)
  • [ 2516e3b ] replace SocketAddr with String in certificate requests [Emmanuel Bosquet] (2023-03-16)
  • [ d909f7d ] create struct AddBackend where SocketAddr is a String [Emmanuel Bosquet] (2023-03-16)
  • [ d2303f9 ] create struct RequestHttpFrontend where SocketAddr is a String [Emmanuel Bosquet] (2023-03-16)
  • [ 8db54c7 ] documenting comments and defaults on Config [Emmanuel Bosquet] (2023-03-16)
  • [ cbca836 ] builder pattern for listeners [Emmanuel Bosquet] (2023-03-16)
  • [ 35a43ee ] default values for timeouts in Config serialization [Emmanuel Bosquet] (2023-03-16)
  • [ 2c6641a ] const DEFAULT_STICKY_NAME with value SOZUBALANCEID [Emmanuel Bosquet] (2023-03-16)
  • [ 7c6c93f ] protocol checks when building Listener in config.rs [Emmanuel Bosquet] (2023-03-16)
  • [ c53e763 ] documenting comments on listener builders [Emmanuel Bosquet] (2023-03-16)
  • [ e8fdb95 ] implement Into for HttpFrontend [Emmanuel Bosquet] (2023-03-16)
  • [ c504ffa ] remove impl Default for HttpListenerConfig [Emmanuel Bosquet] (2023-03-16)
  • [ 0b74c92 ] remove useless field http_addresses on ConfigState [Emmanuel Bosquet] (2023-03-16)
  • [ 7145d1f ] parse socket addresses in the CLI before sending requests [Emmanuel Bosquet] (2023-03-20)
  • [ d6fba00 ] rename QueryAnswerCluster to ClusterInformation [Emmanuel Bosquet] (2023-03-22)
  • [ ee301d9 ] rename CertificateFingerprint to Fingerprint [Emmanuel Bosquet] (2023-03-22)
  • [ 8fcf5e9 ] introduce response type CertificateSummary [Emmanuel Bosquet] (2023-03-22)
  • [ f514bce ] create Request::QueryAllCertificates [Emmanuel Bosquet] (2023-03-22)
  • [ 145d061 ] create Request::QueryCertificatesByDomain [Emmanuel Bosquet] (2023-03-22)
  • [ 81f4f39 ] create Request::QueryCertificateByFingerprint [Emmanuel Bosquet] (2023-03-22)
  • [ 7cf64c8 ] make Request::QueryCertificateByFingerprint contain Fingerprint [Emmanuel Bosquet] (2023-03-22)
  • [ a7e16f8 ] remove ResponseContent::CertificatesByDomain [Emmanuel Bosquet] (2023-03-22)
  • [ 4b312d4 ] remove QueryAnswerCertificate [Emmanuel Bosquet] (2023-03-22)
  • [ fdb8f2e ] rename ClusterMetricsData to ClusterMetrics [Emmanuel Bosquet] (2023-03-22)
  • [ 0e62f8d ] remove ProxyResponseContent, put its variant in ResponseContent [Emmanuel Bosquet] (2023-03-22)
  • [ e0643f4 ] rename ProxyResponse to WorkerResponse [Emmanuel Bosquet] (2023-03-22)
  • [ 4df5ba9 ] put QueryAnswer variants in ProxyResponse, remove QueryAnswer [Emmanuel Bosquet] (2023-03-22)
  • [ 0c94c2b ] make PathRule a struct, with embedded enum PathRuleKind [Emmanuel Bosquet] (2023-03-22)
  • [ ad7f58f ] rename AggregatedMetricsData to AggregatedMetrics [Emmanuel Bosquet] (2023-03-22)
  • [ a5b0009 ] rename FilteredData to FilteredMetrics [Emmanuel Bosquet] (2023-03-22)
  • [ 5f18b71 ] create and use response::BackendMetrics [Emmanuel Bosquet] (2023-03-22)
  • [ cb4755a ] make AggregatedMetrics contain WorkerMetrics [Emmanuel Bosquet] (2023-03-22)
  • [ eb9b18e ] create AvailableMetrics, remove QueryAnswerMetrics [Emmanuel Bosquet] (2023-03-22)
  • [ 3387628 ] move QueryAnswerCertificate::All to ResponseContent::AllCertificates [Emmanuel Bosquet] (2023-03-22)
  • [ 30ae223 ] move QueryAnswerCertificate::Domain to ResponseContent::CertificatesByDomain [Emmanuel Bosquet] (2023-03-22)
  • [ 72259e7 ] move QueryAnswerCertificate::Fingerprint to ResponseContent::CertificateByFingerprint [Emmanuel Bosquet] (2023-03-22)
  • [ 476e230 ] Http refactor: move backend logic from Session to State [Eloi DEMOLIS] (2023-02-13)
  • [ 7fac13a ] create Request::QueryClusterById [Emmanuel Bosquet] (2023-03-23)
  • [ 31d689a ] create Request::QueryClusterByDomain [Emmanuel Bosquet] (2023-03-23)
  • [ f03aac9 ] HttpFrontend::route has type Option [Emmanuel Bosquet] (2023-03-27)
  • [ 5924101 ] rename HttpFrontend::route to cluster_id [Emmanuel Bosquet] (2023-03-27)
  • [ 8d6eb42 ] replace SocketAddr type with String in Listeners [Emmanuel Bosquet] (2023-04-03)
  • [ 8e5e9ce ] field active on TcpListenerConfig [Emmanuel Bosquet] (2023-04-03)
  • [ 65b01e8 ] field active on HttpsListenerConfig [Emmanuel Bosquet] (2023-04-03)
  • [ 1264378 ] field active on HttpListenerConfig [Emmanuel Bosquet] (2023-04-03)
  • [ 565dbd6 ] implement fmt::Display for RequestHttpFrontend [Emmanuel Bosquet] (2023-04-04)
  • [ 87b4d96 ] populate https_frontends in ConfigState [Emmanuel Bosquet] (2023-04-04)
  • [ 457a9cd ] protobuf scaffold [Emmanuel Bosquet] (2023-04-04)
  • [ 7ca33c6 ] write RequestHttpFrontend in protobuf [Emmanuel Bosquet] (2023-04-04)
  • [ 2989f49 ] write CertificateSummary in protobuf [Emmanuel Bosquet] (2023-04-04)
  • [ 8907216 ] write TlsVersion in protobuf [Emmanuel Bosquet] (2023-04-04)
  • [ 36f01dc ] write CertificateAndKey in protobuf [Emmanuel Bosquet] (2023-04-04)
  • [ 00f82cf ] write AddCertificate in protobuf [Emmanuel Bosquet] (2023-04-04)
  • [ 9a37917 ] write RemoveCertificate in protobuf [Emmanuel Bosquet] (2023-04-04)
  • [ 5a77faf ] write ReplaceCertificate in protobuf [Emmanuel Bosquet] (2023-04-04)
  • [ f434974 ] write LoadBalancingAlgorithms in protobuf [Emmanuel Bosquet] (2023-04-05)
  • [ 6716f8a ] write ProxyProtocolConfig in protobuf [Emmanuel Bosquet] (2023-04-05)
  • [ 4e1e7d0 ] write LoadMetric in protobuf [Emmanuel Bosquet] (2023-04-05)
  • [ 25f6018 ] write Cluster in protobuf [Emmanuel Bosquet] (2023-04-05)
  • [ 82bb6c5 ] write RequestTcpFrontend in protobuf [Emmanuel Bosquet] (2023-04-05)
  • [ 685bb16 ] write RemoveBackend in protobuf [Emmanuel Bosquet] (2023-04-05)
  • [ bdd402f ] write AddBackend and LoadBalancingParams in protobuf [Emmanuel Bosquet] (2023-04-05)
  • [ c3969d2 ] write QueryClusterByDomain in protobuf [Emmanuel Bosquet] (2023-04-05)
  • [ a87214f ] write QueryMetricsOptions in protobuf [Emmanuel Bosquet] (2023-04-05)
  • [ ba6928c ] write MetricsConfiguration in protobuf [Emmanuel Bosquet] (2023-04-05)
  • [ be75673 ] write RunState in protobuf [Emmanuel Bosquet] (2023-04-05)
  • [ a8c87a1 ] write WorkerInfo in protobuf [Emmanuel Bosquet] (2023-04-05)
  • [ c674b64 ] write Percentiles in protobuf [Emmanuel Bosquet] (2023-04-05)
  • [ f6a84e1 ] write FilteredTimeSerie in protobuf [Emmanuel Bosquet] (2023-04-05)
  • [ 03332c7 ] write FilteredMetrics in protobuf [Emmanuel Bosquet] (2023-04-05)
  • [ 332ed3e ] write BackendMetrics and ClusterMetrics in protobuf [Emmanuel Bosquet] (2023-04-05)
  • [ 1edcf68 ] write WorkerMetrics in protobuf [Emmanuel Bosquet] (2023-04-05)
  • [ 3e41887 ] write AggregatedMetrics in protobuf [Emmanuel Bosquet] (2023-04-05)
  • [ 19d2915 ] put field names to CertificateAndKey [Emmanuel Bosquet] (2023-04-05)
  • [ 50b1a2e ] write HttpFrontendConfig in protobuf [Emmanuel Bosquet] (2023-04-05)
  • [ a91a576 ] write HttpsFrontendConfig in protobuf [Emmanuel Bosquet] (2023-04-05)
  • [ 6daea56 ] write TcpListenerConfig in protobuf [Emmanuel Bosquet] (2023-04-05)
  • [ bd6d535 ] write ListenersList in protobuf [Emmanuel Bosquet] (2023-04-05)
  • [ 7617b34 ] write ListenerType in protobuf [Emmanuel Bosquet] (2023-04-05)
  • [ 7254b98 ] write RemoveListener in protobuf [Emmanuel Bosquet] (2023-04-05)
  • [ c2df4b0 ] write ActivateListener in protobuf [Emmanuel Bosquet] (2023-04-05)
  • [ d12920e ] write DeactivateListener in protobuf [Emmanuel Bosquet] (2023-04-05)
  • [ 4472332 ] remove useless HttpProxy, HttpsProxy, add TODOs [Emmanuel Bosquet] (2023-04-05)
  • [ dbd1fad ] write AvailableMetrics in protobuf [Emmanuel Bosquet] (2023-04-05)
  • [ 66e36d6 ] write Request in protobuf [Emmanuel Bosquet] (2023-04-26)
  • [ 582d285 ] write ResponseStatus in protobuf [Emmanuel Bosquet] (2023-04-28)
  • [ d817d9d ] create type WorkerInfos [Emmanuel Bosquet] (2023-04-28)
  • [ 7214aa2 ] replace ResponseContent::Status with ResponseContent::Workers [Emmanuel Bosquet] (2023-04-28)
  • [ 7fb08f3 ] make response::Event a struct, create EventKind [Emmanuel Bosquet] (2023-04-28)
  • [ 97fb5da ] write Event and EventKind in protobuf [Emmanuel Bosquet] (2023-04-28)
  • [ ae140f2 ] remove the DumpState command [Emmanuel Bosquet] (2023-04-28)
  • [ 2e26e76 ] create type ClusterHashes [Emmanuel Bosquet] (2023-04-28)
  • [ 30e602d ] write ClusterInformation in protobuf [Emmanuel Bosquet] (2023-04-28)
  • [ f005d9a ] create type ClusterInformations [Emmanuel Bosquet] (2023-04-28)
  • [ 802c3e9 ] create type CertificateWithNames [Emmanuel Bosquet] (2023-04-28)
  • [ 75b5ade ] create types ListOfCertificatesByAddress and CertificatesByAddress [Emmanuel Bosquet] (2023-04-28)
  • [ 537e0e9 ] write ListedFrontends in protobuf [Emmanuel Bosquet] (2023-04-28)
  • [ dbab4b4 ] write ResponseContent in protobuf [Emmanuel Bosquet] (2023-04-28)
  • [ 8cebed1 ] remove id from Response [Emmanuel Bosquet] (2023-04-28)
  • [ 73c496d ] remove protocol version from response [Emmanuel Bosquet] (2023-04-28)
  • [ d51590c ] write Response in protobuf [Emmanuel Bosquet] (2023-04-28)
  • [ cdc8629 ] remove the DumpState command from the protobuf Request [Emmanuel Bosquet] (2023-05-03)
  • [ 22719bd ] remove JSON serialization tests [Emmanuel Bosquet] (2023-05-03)
  • [ acb0455 ] isolate method SessionManager::at_capacity() [Emmanuel Bosquet] (2023-05-03)
  • [ f9de7ba ] create AcceptError::BufferCapacityReached, use it [Emmanuel Bosquet] (2023-05-03)
  • [ b125338 ] use default values wherever possible [Emmanuel Bosquet] (2023-04-12)
  • [ edb6863 ] rewrite use statements [Emmanuel Bosquet] (2023-04-13)
  • [ 570f8af ] implement From for ResponseContent [Emmanuel Bosquet] (2023-05-04)

⛑️ Fixed

  • [ 4901718 ] fix nightly warning in network drain [Emmanuel Bosquet] (2023-05-15)
  • [ 564177c ] fix examples: use statements, bugs [Emmanuel Bosquet] (2023-05-09)
  • [ 6fa15e5 ] apply clippy fixes [Emmanuel Bosquet] (2023-05-05)
  • [ ea0db5d ] Fix a "blue green" issue: [Eloi DEMOLIS] (2023-04-13)
  • [ 7555d38 ] fix(proxy): Add power_of_two and least_loaded to FromStr trait [Tim Bart] (2022-12-18)
  • [ 11407b8 ] fix(macos): minor tweaks to for cargo build to run successfully [Tim Bart] (2022-12-18)
  • [ 384489c ] Use clippy with Rust 1.67.0 and format source code [Florentin Dubois] (2023-02-06)
  • [ fbad528 ] Update return for get_executable_path (freebsd) [3boll] (2023-03-01)

🥹 Contributors

Full Changelog: https://github.com/sozu-proxy/sozu/compare/0.14.2...0.14.3

0.14.2 - 2022-12-08

🌟 Features

✍️ Changed

  • Update RPM packaging, see [ 0776217 ], [ 37e90c2 ],
  • Update dependencies and refactor a bunch of source code to prepare h2, see [ a lot of commits below 😛 ]

Breaking changes

We remove the support of OpenSSL in favor of RusTLS, so the tls provider configurations associated to the selection of a tls provider has been dropped as well, see [ e202d1c ]

Changelog

Added

  • [ 7d9b560 ] add brotli to encoding header values [Emmanuel Bosquet] (2022-11-29)
  • [ 22bf673 ] Add support of OpenSSL 3.0.x [Florentin Dubois] (2022-10-17)
  • [ d8f6b30 ] Add configuration options for OpenSSL TLS provider [Florentin Dubois] (2022-10-20)
  • [ 79755c8 ] Merged https_openssl and https_rustls [Eloi DEMOLIS] (2022-11-17)
  • [ e202d1c ] Remove OpenSSL [Eloi DEMOLIS] (2022-11-17)
  • [ 7118e64 ] import https://github.com/sozu-proxy/sozu-acme into the sozu command line [Emmanuel Bosquet] (2022-12-07)
  • [ 339277d ] update acme-lib and tiny_http dependencies [Emmanuel Bosquet] (2022-12-07)
  • [ da0f667 ] Add codeowners file [Florentin Dubois] (2022-11-30)

✍️ Changed

  • [ 0776217 ] Making some updates to RPM build spec and script. [Igal Alkon] (2021-07-31)
  • [ 37e90c2 ] Updating the rpm build script to have two modes of build the packages. [Igal Alkon] (2021-07-31)
  • [ 8997ec2 ] Update changelog to add entry for 0.14.1 [Florentin Dubois] (2022-10-13)
  • [ 073375f ] Unit tests, comments and refactoring of command/src/channel.rs [Emmanuel Bosquet] (2022-10-17)
  • [ e6a4615 ] Update README.md to remove ctl crate and add command one [Florentin Dubois] (2022-10-17)
  • [ a930847 ] Fix typos [Kian-Meng Ang] (2022-11-10)
  • [ 6fdfc18 ] update build scripts with the --locked flag [Emmanuel Bosquet] (2022-12-01)
  • [ 6f38476 ] Update dependencies [Florentin Dubois] (2022-12-01)
  • [ ae8ffe7 ] Update behaviour of add_certificate to skip already loaded certificate [Florentin Dubois] (2022-12-02)
  • [ aef7baa ] Rename variables l to listener on command/src/config [Florentin Dubois] (2022-12-02)
  • [ 19c4f70 ] Use rustfmt to format project [Florentin Dubois] (2022-12-02)
  • [ 72bb233 ] fullfill syntax TODOs [Emmanuel Bosquet] (2022-11-17)
  • [ dceea6f ] log ConnectionError with thiserror [Emmanuel Bosquet] (2022-11-22)
  • [ a7697ff ] Use listener cert when https front lacks cert [Ion Agorria] (2022-11-25)
  • [ 42c548b ] set a TODO to handle EINPROGRESS error when connecting to backend [Emmanuel Bosquet] (2022-11-25)

🚀 Refactored

  • [ c882946 ] processing messages between main process and CLI [Emmanuel Bosquet] (2022-10-20)
  • [ e90cc52 ] ctl: display response message for successful ProxyRequestOrder [Emmanuel Bosquet] (2022-10-25)
  • [ 69aac18 ] http session: clean-up session creation [Emmanuel Bosquet] (2022-11-08)
  • [ f31c894 ] tcp session: clean-up session creation [Emmanuel Bosquet] (2022-11-08)
  • [ 94994a3 ] htts_openssl session: clean-up session creation [Emmanuel Bosquet] (2022-11-08)
  • [ f5c6cf5 ] https_rustls session: clean-up session creation [Emmanuel Bosquet] (2022-11-08)
  • [ a4dc22e ] remove useless front_socket_mut functions on tcp and http Session [Emmanuel Bosquet] (2022-11-08)
  • [ 3e2f445 ] full error propagation on ConfigState::handle_order() [Emmanuel Bosquet] (2022-11-16)
  • [ 42986fd ] Error propagation on ScmSocket and Channel [Emmanuel Bosquet] (2022-11-17)
  • [ edfa1b4 ] remove obsolete comment about main process crashing [Emmanuel Bosquet] (2022-11-17)
  • [ bfc4884 ] replace ConnectionError with anyhow::Result [Emmanuel Bosquet] (2022-12-05)
  • [ 59bb989 ] merge client loop creation logic in the accept_clients function [Emmanuel Bosquet] (2022-12-05)
  • [ a6c7c9f ] error propagation on getting 404 and 503 answers from file system [Emmanuel Bosquet] (2022-11-17)
  • [ 5d83eef ] define the ClusterId type only once [Emmanuel Bosquet] (2022-11-17)
  • [ 605b95e ] abstract out the function reset_loop_time_and_get_timeout [Emmanuel Bosquet] (2022-11-25)
  • [ 2959876 ] abstract out the function read_channel_messages_and_notify [Emmanuel Bosquet] (2022-11-25)
  • [ 7743eba ] abstract out the functions zombie_check and shutting_down_complete [Emmanuel Bosquet] (2022-11-25)
  • [ c5e2262 ] add fields to Server for a clearer loop flow [Emmanuel Bosquet] (2022-11-25)
  • [ 96b90c9 ] clearer syntax on read_channel_messages_and_notify, comments [Emmanuel Bosquet] (2022-11-28)
  • [ 1aee08d ] create ConnectionError::MioConnectError [Emmanuel Bosquet] (2022-11-28)
  • [ 33b3e5f ] Abstract out notify proxys (#842) [Emmanuel Bosquet] (2022-11-30)

💪 First works on H2

  • [ 6bdb937 ] Rename HTTPS states, remove Option around State, rename https.rs [Eloi DEMOLIS] (2022-11-17)
  • [ a819fa3 ] Add Invalid State in HTTPS, add ALPN to Rustls ServerConfig [Eloi DEMOLIS] (2022-11-17)
  • [ 26f7d15 ] Make way for H2 with Alpn switch [Eloi DEMOLIS] (2022-11-17)
  • [ ec31f82 ] make RouteKey a common struct, make use of its methods [Emmanuel Bosquet] (2022-11-17)

⛑️ Fixed

  • [ 790f96b ] prevent concurrent testing in the github CI [Emmanuel Bosquet] (2022-12-01)
  • [ 719b637 ] ScmSocket::set_blocking updates its blocking field, takes &mut self [Emmanuel Bosquet] (2022-12-01)
  • [ 2624a43 ] Fix Sessions close: [Eloi DEMOLIS] (2022-12-02)

🥹 Contributors

Full Changelog: https://github.com/sozu-proxy/sozu/compare/v0.14.1...0.14.2

0.14.1 - 2022-10-13

🔖 Documentation

✍️ Changed

📖 Changelog

  • [ 07ccff3 ] Update changelog to add version v0.14.0 [Florentin Dubois] (2022-10-06)
  • [ 7e223ee ] Rewrite session creation in lifetime_of_a_session.md [Eloi DEMOLIS] (2022-10-11)
  • [ 50a940a ] Continue work on the documentation, rename listen_token to listener_token [Eloi DEMOLIS] (2022-10-11)
  • [ a13eb35 ] Finish rewriting existing parts [Eloi DEMOLIS] (2022-10-11)
  • [ 2b6706c ] Finish the lifetime of a session documentation [Eloi DEMOLIS] (2022-10-12)
  • [ 3af39a6 ] Update TLS cipher suites [Florentin Dubois] (2022-10-12)
  • [ 693bc84 ] Update rust edition to 2021 [Florentin Dubois] (2022-10-13)
  • [ 8f4449c ] Update command dependencies [Florentin Dubois] (2022-10-13)
  • [ e14109b ] Update rust edition to 2021 [Florentin Dubois] (2022-10-13)
  • [ 339ed21 ] Update rust edition to 2021 [Florentin Dubois] (2022-10-13)
  • [ f064d8b ] Update binary dependencies [Florentin Dubois] (2022-10-13)
  • [ 0e3fffe ] Fix a blocking clippy suggestion [Florentin Dubois] (2022-10-13)

🥹 Contributors

  • @Wonshtrum
  • @Keksoj
  • @FlorentinDUBOIS

Full Changelog: https://github.com/sozu-proxy/sozu/compare/v0.14.0...0.14.1

0.14.0 - 2022-10-06

🌟 Features

Breaking changes

Between the v0.13.6 and v0.14.0 structures present in the command folder has changed which led to an incomptibility between those two versions.

Changelog

Added

  • [ 22f1a72 ] docs(ctl): add use cases [Gaël Reyrol] (2021-04-19)
  • [ c007794 ] docs: update references to sozuctl [Gaël Reyrol] (2021-04-19)
  • [ 9e5a2c6 ] docs(ctl): typo [Gaël Reyrol] (2021-04-19)
  • [ 06a8e4b ] start describing how client sessions are handled [Geoffroy Couprie] (2021-07-30)
  • [ f247ce3 ] import WIP HTTP/2 implementation [Geoffroy Couprie] (2022-07-13)
  • [ 65d5043 ] change the default buffer size to accomodate HTTP/2 [Geoffroy Couprie] (2022-07-13)
  • [ 6da9038 ] start integrating HTTP/2 in the HTTPS-OpenSSL proxy [Geoffroy Couprie] (2022-07-13)
  • [ c5b9bfa ] add an Equals path rule [Geoffroy Couprie] (2022-07-13)
  • [ b7fa649 ] start integrating a KV store for metrics [Geoffroy Couprie] (2022-07-13)
  • [ 8ffca7f ] merge the Count and Gauge columns in metrics dump [Geoffroy Couprie] (2022-07-13)
  • [ 9e6bd1d ] aggregate stored metrics [Geoffroy Couprie] (2022-07-13)
  • [ 855c35e ] simplify the metrics printer [Geoffroy Couprie] (2022-07-13)
  • [ 2a2c3b9 ] store an app level metric aggregating backend metrics [Geoffroy Couprie] (2022-07-13)
  • [ 7515a7e ] add a separating character for app metrics [Geoffroy Couprie] (2022-07-13)
  • [ 809a481 ] sort cluster ids, backend ids and metric names to keep a consistent view [Geoffroy Couprie] (2022-07-13)
  • [ 67b98d0 ] add a request counter per cluster and backend [Geoffroy Couprie] (2022-07-13)
  • [ 086fdca ] metrics query in command line [Geoffroy Couprie] (2022-07-13)
  • [ 912508a ] store cluster and backnd level metrics in different trees [Geoffroy Couprie] (2022-07-13)
  • [ 3b956fb ] more structured answers for metrics queries [Geoffroy Couprie] (2022-07-13)
  • [ 5691fb9 ] add the metrics list command [Geoffroy Couprie] (2022-07-13)
  • [ effc0a9 ] add a flag to refresh metrics output [Geoffroy Couprie] (2022-07-13)
  • [ 829ad4b ] store and query time metrics [Geoffroy Couprie] (2022-07-13)
  • [ 3de4cb7 ] start aggregation for time metrics [Geoffroy Couprie] (2022-07-13)
  • [ 6dd7f2f ] reorder time metric key components [Geoffroy Couprie] (2022-07-13)
  • [ 5427107 ] allow queries with timestamps [Geoffroy Couprie] (2022-07-13)
  • [ c271481 ] fix count and gauge aggregation [Geoffroy Couprie] (2022-07-13)
  • [ 7af7a98 ] no need to aggregate data when clearing [Geoffroy Couprie] (2022-07-13)
  • [ d0f853a ] deactivate metrics dump for now [Geoffroy Couprie] (2022-07-13)
  • [ aa1176a ] do not store time metrics every second [Geoffroy Couprie] (2022-07-13)
  • [ 1c2c87a ] send the date field [Geoffroy Couprie] (2022-07-13)
  • [ 5309acb ] metrics collection can now be disabled at runtime [Geoffroy Couprie] (2022-07-13)
  • [ 751c2e8 ] clear time metrics like other metrics [Geoffroy Couprie] (2022-07-13)
  • [ daacf30 ] reduce logging in metrics [Geoffroy Couprie] (2022-07-13)
  • [ a673a3b ] count config messages loaded at startup [Geoffroy Couprie] (2022-07-13)
  • [ 4f6a47f ] time metrics can be deactivated independently [Geoffroy Couprie] (2022-07-13)
  • [ 985afc0 ] no need to clear metrics if they are disabled [Geoffroy Couprie] (2022-07-13)
  • [ 3418b6f ] use batching for time metrics insertion [Geoffroy Couprie] (2022-07-13)
  • [ f2d07eb ] batch insertion of gauges and counts [Geoffroy Couprie] (2022-07-13)
  • [ acb0b06 ] reduce allocations in time metrics handling [Geoffroy Couprie] (2022-07-13)
  • [ ab34222 ] move back to in memory storage for metrics [Geoffroy Couprie] (2022-07-13)
  • [ aaf2224 ] simpify store_metric_at [Geoffroy Couprie] (2022-07-13)
  • [ a82a83f ] return a HTTP 503 error when there are too many connections [Geoffroy Couprie] (2022-07-13)
  • [ a7952a1 ] Create an unified certificate resolver for both https with openssl and rustls [Florentin Dubois] (2022-07-13)
  • [ 53f6911 ] added error management in the connection to the socket [Emmanuel Bosquet] (2022-07-13)
  • [ bbd4f5f ] Use already parsed certificate and chains in rustls hello method [Florentin Dubois] (2022-07-13)
  • [ 5f62687 ] make the command server entirely event-based [Emmanuel Bosquet] (2022-07-13)
  • [ 3c7ab65 ] additional error logs and context [Emmanuel Bosquet] (2022-07-13)
  • [ d322bc2 ] edited comments in Command Server, a few bails [Emmanuel Bosquet] (2022-07-13)
  • [ 33b6e11 ] reset the CommandManager channel as nonblocking [Emmanuel Bosquet] (2022-07-13)
  • [ 5bbde99 ] Implements command parser with serde error propagation [Emmanuel Bosquet] (2022-07-13)
  • [ 3c24088 ] Split ctl/command.rs into modules [Emmanuel Bosquet] (2022-07-13)
  • [ 7276e17 ] Update certificate replacement behaviour (#762) [Florentin DUBOIS] (2022-07-13)
  • [ 9b14a65 ] Add support of openssl 1.1.1 [Florentin Dubois] (2022-07-13)
  • [ 115b9b1 ] Implements custom tags on access logs of protocols TCP, HTTP and HTTPS [Emmanuel Bosquet] (2022-07-29)
  • [ a9959ba ] Add reference counting on for listeners on proxy [Florentin Dubois] (2022-08-03)
  • [ f1dec19 ] fix metrics enabling, disabling and clear on the CLI and Command Server [Emmanuel Bosquet] (2022-08-09)
  • [ 67445c4 ] store cluster metrics in a simpler way, query them all [Emmanuel Bosquet] (2022-08-19)
  • [ ae8d9c1 ] retrieve cluster and backend metrics by ids [Emmanuel Bosquet] (2022-08-22)
  • [ b0844e3 ] filter metrics by metric name [Emmanuel Bosquet] (2022-08-23)
  • [ 9eb2c01 ] clear the metrics LocalDrain every plain hour [Emmanuel Bosquet] (2022-08-24)
  • [ e774cff ] error management in metrics recording and retrieving [Emmanuel Bosquet] (2022-08-24)
  • [ 81f24c4 ] gather and display main process metrics [Emmanuel Bosquet] (2022-08-24)
  • [ c02b130 ] refactor metrics query format and CLI metric command [Emmanuel Bosquet] (2022-08-24)
  • [ ce2c764 ] cli table, nice formatting [Emmanuel Bosquet] (2022-08-29)

✍️ Changed

  • [ 6382efd ] refactor: reorganize docs and typo [Gaël Reyrol] (2021-04-16)
  • [ 803b482 ] refactor: typo and move some blocks [Gaël Reyrol] (2021-04-16)
  • [ 8a530c2 ] initialize the logger before writing the pid file [Emmanuel Bosquet] (2021-07-30)
  • [ 3f98117 ] rewrite start function with beautiful error handling [Emmanuel Bosquet] (2021-07-30)
  • [ 7628b46 ] more readable error handling on write_pid_file() [Emmanuel Bosquet] (2021-07-30)
  • [ 4ce87cb ] take review into account, return errors instead of Ok(()) [Emmanuel Bosquet] (2021-08-18)
  • [ 4cd98ff ] minor fixes to sozuctl, command.rs [Emmanuel Bosquet] (2021-08-18)
  • [ 3b38893 ] added with_context() and map_err() to error management of sozuctl [Emmanuel Bosquet] (2021-08-18)
  • [ 387fe2b ] more harmonious, systematic error handling [Emmanuel Bosquet] (2021-08-18)
  • [ 7979942 ] better follow-up of worker RunState [Emmanuel Bosquet] (2021-08-18)
  • [ 5cb34ac ] comments about what is to change [Emmanuel Bosquet] (2021-08-18)
  • [ 863ee59 ] added frustrated comments about code making no sense [Emmanuel Bosquet] (2021-08-18)
  • [ 6b24a24 ] proper handling of WorkerClose by the CommandServer [Emmanuel Bosquet] (2021-08-18)
  • [ 7cddf2c ] add a test for protocol upgrades [Geoffroy Couprie] (2021-08-20)
  • [ 78bf601 ] update to nom 7.0, remove the last macros [Geoffroy Couprie] (2021-08-23)
  • [ 9c551d6 ] describe what happens when reading and parsing the request [Geoffroy Couprie] (2021-08-25)
  • [ 1c0f75a ] Replace the TODO "Why you should use Sōzu?" [Arnaud Lemercier] (2021-11-08)
  • [ 7fb636f ] allow Dockerfile to choose Alpine base version (#755) [Mickaël Wolff] (2022-02-21)
  • [ 5b58b91 ] replace the trie with a tree of hashmaps [Geoffroy Couprie] (2022-07-13)
  • [ 96c0c5c ] create the router module [Geoffroy Couprie] (2022-07-13)
  • [ 016d89c ] add a variant of the trie that supports regexp matches [Geoffroy Couprie] (2022-07-13)
  • [ 4fa109c ] remove debug logs [Geoffroy Couprie] (2022-07-13)
  • [ a9dd46e ] implement the new Router [Geoffroy Couprie] (2022-07-13)
  • [ 043b928 ] add new routing rules to configuration messages [Geoffroy Couprie] (2022-07-13)
  • [ c8504d4 ] use the new router and integrate in sozuctl [Geoffroy Couprie] (2022-07-13)
  • [ 8a2a17c ] ignore wildcard case in quickcheck tests [Geoffroy Couprie] (2022-07-13)
  • [ 3822c5a ] update to cookie-factory 0.3 [Geoffroy Couprie] (2022-07-13)
  • [ 8555e44 ] merge sozuctl in sozu [Geoffroy Couprie] (2022-07-13)
  • [ 5dc5c00 ] add deny rules [Geoffroy Couprie] (2022-07-13)
  • [ 270bfee ] rename HttpFront to HttpFrontend [Geoffroy Couprie] (2022-07-13)
  • [ cf59369 ] rename CertFingerprint to CertificateFingerprint [Geoffroy Couprie] (2022-07-13)
  • [ f4f05b4 ] rename Application to Cluster [Geoffroy Couprie] (2022-07-13)
  • [ d2cf976 ] the HTTP frontends hashmap key should serialize to a string [Geoffroy Couprie] (2022-07-13)
  • [ 95909ea ] rename front to address [Geoffroy Couprie] (2022-07-13)
  • [ 9d22c12 ] custom PartialOrd and Ord implementations for SocketAddr [Geoffroy Couprie] (2022-07-13)
  • [ 1fff30d ] update dependencies [Geoffroy Couprie] (2022-07-13)
  • [ f96d1ac ] add routing based on the HTTP method [Geoffroy Couprie] (2022-07-13)
  • [ af38431 ] make the method configurable through the cli [Geoffroy Couprie] (2022-07-13)
  • [ a6e7c72 ] move target_to_backend to sozu-command-lib [Geoffroy Couprie] (2022-07-13)
  • [ b66b0c8 ] update dependencies [Geoffroy Couprie] (2022-07-13)
  • [ f12bacb ] sled can create directly in a temporary file [Geoffroy Couprie] (2022-07-13)
  • [ f079127 ] change key format [Geoffroy Couprie] (2022-07-13)
  • [ 194908f ] cosmetics [Geoffroy Couprie] (2022-07-13)
  • [ 6a853ce ] more logs [Geoffroy Couprie] (2022-07-13)
  • [ 627dd0e ] rusfmt pass [Geoffroy Couprie] (2022-07-13)
  • [ 2e723bc ] edition 2021 [Geoffroy Couprie] (2022-07-13)
  • [ 2cfeff7 ] update dependencies [Geoffroy Couprie] (2022-07-13)
  • [ 0328f0e ] update dependencies [Geoffroy Couprie] (2022-07-13)
  • [ 92ded4a ] store a mio::Registry in ProxyConfiguration implementations [Geoffroy Couprie] (2022-07-13)
  • [ 538741c ] remove the poll argument from ProxyConfiguration methods [Geoffroy Couprie] (2022-07-13)
  • [ e217e03 ] store the sessions slab in a Rc<RefCell<>> [Geoffroy Couprie] (2022-07-13)
  • [ 3e6ee85 ] store the sessions slab in ProxyConfiguration implementations [Geoffroy Couprie] (2022-07-13)
  • [ 72ccfe9 ] now create_session uses the internal slab instance [Geoffroy Couprie] (2022-07-13)
  • [ 7eef4f0 ] use the internal slab instance in connect_to_backend [Geoffroy Couprie] (2022-07-13)
  • [ ad26bb8 ] move slab capacity check in connect_to_backend [Geoffroy Couprie] (2022-07-13)
  • [ 0716c42 ] factor data in the new SessionManager object [Geoffroy Couprie] (2022-07-13)
  • [ f5b8290 ] refactor session management [Geoffroy Couprie] (2022-07-13)
  • [ 56e6579 ] simplify session creation [Geoffroy Couprie] (2022-07-13)
  • [ a152063 ] move close_session() to the session manager [Geoffroy Couprie] (2022-07-13)
  • [ 8a9bbc9 ] pass a Rc<Refcell> as argument to create_session [Geoffroy Couprie] (2022-07-13)
  • [ 4ef0c60 ] store an instance of Proxy in sessions, handle close() in ready() [Geoffroy Couprie] (2022-07-13)
  • [ 77e36b8 ] implement CloseBackend in sessions [Geoffroy Couprie] (2022-07-13)
  • [ 11bf1c8 ] the circuit breaker check should be in the session [Geoffroy Couprie] (2022-07-13)
  • [ 8f1b0cc ] move some checks to the session object [Geoffroy Couprie] (2022-07-13)
  • [ e2f40a5 ] simplify backend_from_request [Geoffroy Couprie] (2022-07-13)
  • [ 1685d8f ] pass the session to the ready() method [Geoffroy Couprie] (2022-07-13)
  • [ 6b7681b ] move connect_to_backend to the session, call it from ready() [Geoffroy Couprie] (2022-07-13)
  • [ 6310f19 ] implement reconnect_to_backend in sessions [Geoffroy Couprie] (2022-07-13)
  • [ c6ce2fd ] remove connect_to_backend from ProxyConfiguration [Geoffroy Couprie] (2022-07-13)
  • [ 59c0548 ] remove the ProxySessionCast trait [Geoffroy Couprie] (2022-07-13)
  • [ 8a801cf ] deregister the back socket inside close_backend_inner() [Geoffroy Couprie] (2022-07-13)
  • [ fc8daa4 ] deregister the front socket inside close_inner [Geoffroy Couprie] (2022-07-13)
  • [ 3151dea ] replace ProxySession::close() with close_inner(), remove close_session() [Geoffroy Couprie] (2022-07-13)
  • [ 6c2da60 ] remove ProxySession::close_backend() [Geoffroy Couprie] (2022-07-13)
  • [ c573f40 ] handle session close in ProxySession::timeout() [Geoffroy Couprie] (2022-07-13)
  • [ 6dd1f30 ] remove interpret_session_order() [Geoffroy Couprie] (2022-07-13)
  • [ c74fb59 ] handle session close in ProxySession::shutting_down() [Geoffroy Couprie] (2022-07-13)
  • [ 61cb878 ] clean up some warnings [Geoffroy Couprie] (2022-07-13)
  • [ f995e45 ] handle ConnectBackend and ReconnectBackend in ready_inner [Geoffroy Couprie] (2022-07-13)
  • [ f78c9c6 ] remove a warning and a debug log [Geoffroy Couprie] (2022-07-13)
  • [ 09a75ba ] anyhow almost everywhere [Emmanuel Bosquet] (2022-07-13)
  • [ c7fe82d ] remove returned anyhow::Result from CommandServer::run() [Emmanuel Bosquet] (2022-07-13)
  • [ b7e34cf ] anyhow error management in main.rs [Emmanuel Bosquet] (2022-07-13)
  • [ 047c03a ] clearer WorkerClose syntax [Emmanuel Bosquet] (2022-07-13)
  • [ 8512878 ] better syntax and error management in launch_worker() [Emmanuel Bosquet] (2022-07-13)
  • [ af29ec6 ] add a loop in bin/src/ctl::upgrade_main() [Emmanuel Bosquet] (2022-07-13)
  • [ c18a540 ] initialize logging in main.rs so that ctl() benefits from it [Emmanuel Bosquet] (2022-07-13)
  • [ da3cdc0 ] initialize logging in start() and in ctl() but not in main [Emmanuel Bosquet] (2022-07-13)
  • [ d74ff84 ] handle_worker_close() method [Emmanuel Bosquet] (2022-07-13)
  • [ 22ae844 ] some logging in ctl/command::upgrade_worker() [Emmanuel Bosquet] (2022-07-13)
  • [ a854c77 ] small corrections for review, adding error handling and removing useless code [Emmanuel Bosquet] (2022-07-13)
  • [ 92fc1bf ] do not borrow the sessions slab while calling a session timeout [Geoffroy Couprie] (2022-07-13)
  • [ ec9fdf8 ] minor config file change [Emmanuel Bosquet] (2022-07-13)
  • [ 3036749 ] more verbose cli logging command [Emmanuel Bosquet] (2022-07-13)
  • [ 6b141e0 ] Add basic frontend list subcommand and hello world response [Emmanuel Bosquet] (2022-07-13)
  • [ e0b94bf ] added filtering of frontends by domain name [Emmanuel Bosquet] (2022-07-13)
  • [ ee64329 ] better syntax on panick safeguard [Emmanuel Bosquet] (2022-07-13)
  • [ 7f799d7 ] update most dependencies [Marc-Antoine Perennou] (2022-07-13)
  • [ 730d901 ] comment out randomly failing test for now [Marc-Antoine Perennou] (2022-07-13)
  • [ 57b07a4 ] don't use deprecated mio features [Marc-Antoine Perennou] (2022-07-13)
  • [ 64715c7 ] switch to socket2 [Marc-Antoine Perennou] (2022-07-13)
  • [ b1fb359 ] silence warnings [Marc-Antoine Perennou] (2022-07-13)
  • [ 13f153c ] update to rustls 0.20 [Marc-Antoine Perennou] (2022-07-13)
  • [ d56536a ] wrappring channel.read_message() with a timeout function [Emmanuel Bosquet] (2022-07-13)
  • [ 0ca805e ] Created read_message_blocking_timeout() method on Channel [Emmanuel Bosquet] (2022-07-13)
  • [ 48e9493 ] more verbose worker upgrade error [Emmanuel Bosquet] (2022-07-13)
  • [ 5629cca ] added proper timeout to upgrade_worker() call in upgrade_main() [Emmanuel Bosquet] (2022-07-13)
  • [ 8f73aa1 ] update mio to 0.8 [Marc-Antoine Perennou] (2022-07-13)
  • [ 78272fc ] error logging on getting saved_state from the config [Emmanuel Bosquet] (2022-07-13)
  • [ d9e008f ] comment in config.toml that the path of saved_state should be relative [Emmanuel Bosquet] (2022-07-13)
  • [ fba2f8e ] adapt unit test of Config::load_from_path() [Emmanuel Bosquet] (2022-07-13)
  • [ c4ec939 ] handle_client_message returns Result [Emmanuel Bosquet] (2022-07-13)
  • [ c9d0c6c ] beautify use statements and CommandServer impl blocks [Emmanuel Bosquet] (2022-07-13)
  • [ 9d60cd8 ] Apply clippy suggestions using rust edition 2021 [Florentin Dubois] (2022-07-13)
  • [ e05b80e ] segregate the state parsing logic into parse_state_data() [Emmanuel Bosquet] (2022-07-13)
  • [ 9d90d45 ] Revert "segregate the state parsing logic into parse_state_data()" [Emmanuel Bosquet] (2022-07-13)
  • [ 11f916d ] Format all use statements (#749) [Emmanuel Bosquet] (2022-07-13)
  • [ 5aa0ee1 ] sort use statements in files of main process (#750) [Emmanuel Bosquet] (2022-07-13)
  • [ fdcbacc ] commented the worker and client loops, renamed variables (#752) [Emmanuel Bosquet] (2022-07-13)
  • [ adf2d3a ] segregate the log level changing logic into its own function [Emmanuel Bosquet] (2022-07-13)
  • [ ce80563 ] better variable naming and comments in CommandServer::worker_order() [Emmanuel Bosquet] (2022-07-13)
  • [ 1b3cd3c ] Update workspace dependencies [Florentin Dubois] (2022-07-13)
  • [ da2adcf ] Update command, lib and binaries dependencies [Florentin Dubois] (2022-07-13)
  • [ 697af1d ] respond with ProxyResponseStatus::Error instead of panic when no listener is found [Emmanuel Bosquet] (2022-07-13)
  • [ 15bd0fd ] constructor functions for ProxyResponse [Emmanuel Bosquet] (2022-07-13)
  • [ a4e7dec ] remove if let statements from server::run and some session logic [Emmanuel Bosquet] (2022-07-20)
  • [ 17c376a ] refactor certificate logic in ctl, with Results instead of Options [Emmanuel Bosquet] (2022-07-22)
  • [ 11bda07 ] Remove all nonbreakable spaces [Emmanuel Bosquet] (2022-07-29)
  • [ 9054d9c ] Use matching pattern and Entry enum to add listener [Florentin Dubois] (2022-08-03)
  • [ a8dde73 ] Use std::collections::HashMap instead of hashbrown::HashMap [Florentin Dubois] (2022-08-03)
  • [ 55b6c58 ] Use clap 3 with derive instead of StructOpt [Florentin Dubois] (2022-08-03)
  • [ 53a47ae ] Fix command line arguments conflicts [Florentin Dubois] (2022-08-04)
  • [ 8004c76 ] correct command line tutorial in doc/configure_cli [Emmanuel Bosquet] (2022-08-04)
  • [ 3403cc4 ] Update dependencies [Florentin Dubois] (2022-08-08)
  • [ 4f8eb4b ] Add convenient method as helpers and use PartialOrd and Ord derive instructions [Florentin Dubois] (2022-08-08)
  • [ 4ccd277 ] rename "application" to "cluster" for consistency [Emmanuel Bosquet] (2022-08-08)
  • [ 8860c94 ] rudimentary lexicon [Emmanuel Bosquet] (2022-08-09)
  • [ 431b63f ] debug a few things [Emmanuel Bosquet] (2022-08-09)
  • [ 9f029ac ] restore anyhow to 1.0.59 [Emmanuel Bosquet] (2022-08-09)
  • [ 0b9b92f ] add an all-metrics command line option [Emmanuel Bosquet] (2022-08-12)
  • [ 9b7fdc9 ] tree_mut getter function, comments on struct fields, variable renaming [Emmanuel Bosquet] (2022-08-16)
  • [ 0cac89c ] refactor metrics printing with segreggated functions [Emmanuel Bosquet] (2022-08-16)
  • [ 4962f38 ] list both proxy metric names and cluster metric names, refactoring, variable renaming [Emmanuel Bosquet] (2022-08-17)
  • [ c8a9918 ] metrics table formatting in the cli [Emmanuel Bosquet] (2022-08-17)
  • [ 1d6722e ] format metrics in nice boxes, suggestions in comments [Emmanuel Bosquet] (2022-08-18)
  • [ ecf0353 ] anyhow version to 1.0.62 [Emmanuel Bosquet] (2022-08-18)
  • [ 7b213e5 ] trickle up errors if no metric for a backend or cluster [Emmanuel Bosquet] (2022-08-23)
  • [ c44db1f ] Documenting comments and minor refactor [Eloi DEMOLIS] (2022-08-31)
  • [ 9b19aae ] Renamed RequestLine and StatusLine and their raw versions [Eloi DEMOLIS] (2022-08-31)
  • [ 8f2f1c0 ] comments in bin imports, functions and struct fields, refactoring [Emmanuel Bosquet] (2022-09-02)
  • [ 1a22d09 ] proper error management on receive_listeners method of scm sockets [Emmanuel Bosquet] (2022-09-02)
  • [ a30eb4e ] variable renaming, documenting comments, light refactoring [Emmanuel Bosquet] (2022-09-02)
  • [ 0955dcd ] rename fields to better detailed names [Emmanuel Bosquet] (2022-09-02)
  • [ 0d88159 ] rename start_worker_process into fork_main_into_worker [Emmanuel Bosquet] (2022-09-05)
  • [ 5190f55 ] rename IPC sockets explicitly [Emmanuel Bosquet] (2022-09-05)
  • [ 74b82ce ] better naming for worker variables [Emmanuel Bosquet] (2022-09-05)
  • [ 5e77738 ] Renaming variables for clarity, light refactoring [Eloi DEMOLIS] (2022-09-05)
  • [ 7b30066 ] Potential place for 499 integration [Eloi DEMOLIS] (2022-09-07)
  • [ 3607dea ] status() function in the Command Server (not finished) [Emmanuel Bosquet] (2022-09-09)
  • [ 6d293c5 ] finished implementing displaying of worker statuses [Emmanuel Bosquet] (2022-09-09)
  • [ b3c4f90 ] debugging [Emmanuel Bosquet] (2022-09-12)
  • [ c79af23 ] delete legacy status function in ctl [Emmanuel Bosquet] (2022-09-12)
  • [ 8c1a0f4 ] anyhow error management on FileClusterConfig::to_cluster_config() and downstream [Emmanuel Bosquet] (2022-09-19)
  • [ 766f56c ] anyhow error management on FileConfig::into() and downstream [Emmanuel Bosquet] (2022-09-21)
  • [ 05a62f4 ] trickle errors on metrics setup [Emmanuel Bosquet] (2022-09-21)
  • [ 3ec6eb1 ] http::start() returns anyhow::Result, trickle errors [Emmanuel Bosquet] (2022-09-22)
  • [ 2563427 ] https_openssl::start() returns anyhow::Result, trickle errors [Emmanuel Bosquet] (2022-09-22)
  • [ 863b3cf ] error management in all server starts and Server::new() [Emmanuel Bosquet] (2022-09-23)
  • [ abb4a7a ] Addresses part of #808 and #810 [Eloi DEMOLIS] (2022-10-03)
  • [ 53be70e ] Fix HTTP crash for missing listeners on accept while shutdown. [Eloi DEMOLIS] (2022-10-04)
  • [ 1610b33 ] Update dependencies and apply linter suggestions [Florentin Dubois] (2022-10-04)

Removed

  • [ e82588a ] remove the end keys [Geoffroy Couprie] (2022-07-13)
  • [ fcc5d17 ] unused file [Geoffroy Couprie] (2022-07-13)
  • [ ce0b23c ] remove log message [Geoffroy Couprie] (2022-07-13)
  • [ 5c808eb ] remove unused dependencies [Geoffroy Couprie] (2022-07-13)
  • [ 5ef9338 ] Remove unused futures member [Florentin Dubois] (2022-07-13)
  • [ 4c7e8cb ] remove unwrap() and expect() statements [Emmanuel Bosquet] (2022-09-19)

⛑️ Fixed

  • [ 05341d7 ] fix: when targeting musl, construct msghdr differently [Nathaniel] (2021-02-22)
  • [ f9af65e ] fix: link [Gaël Reyrol] (2021-04-16)
  • [ 931e198 ] fix: typo [Gaël Reyrol] (2021-04-16)
  • [ 6d2fcd0 ] fix: typo [Gaël Reyrol] (2021-04-16)
  • [ 6981f09 ] test (and fix) close delimited responses [Geoffroy Couprie] (2021-08-20)
  • [ 532a658 ] fix warnings [Geoffroy Couprie] (2021-08-20)
  • [ bab0156 ] fix missing slash [Alexey Pozdnyakov] (2021-12-18)
  • [ d935da5 ] Allow passing domain names from the command line (#757) [Sojan James] (2022-02-05)
  • [ e0700fb ] Fix the config.toml file (#754) [Hubert Bonisseur] (2022-02-10)
  • [ cbca349 ] fix build on stable [Geoffroy Couprie] (2022-07-13)
  • [ 108876b ] handle empty prefixes [Geoffroy Couprie] (2022-07-13)
  • [ ba6019e ] clean some warnings [Geoffroy Couprie] (2022-07-13)
  • [ f5f6700 ] fix dependencies and compilation [Geoffroy Couprie] (2022-07-13)
  • [ 5729d5f ] fix state hashing [Geoffroy Couprie] (2022-07-13)
  • [ 9b345af ] fix performance of state hashing [Geoffroy Couprie] (2022-07-13)
  • [ 99b1d29 ] remove some warnings [Geoffroy Couprie] (2022-07-13)
  • [ 397620b ] missing RemoveCluster implementation [Geoffroy Couprie] (2022-07-13)
  • [ fce54ca ] fix unit tests [Geoffroy Couprie] (2022-07-13)
  • [ 4b50212 ] do not panic on sled errors [Geoffroy Couprie] (2022-07-13)
  • [ 97e2fdd ] fix answer message counting [Geoffroy Couprie] (2022-07-13)
  • [ d66ff8f ] fix some debug logs [Geoffroy Couprie] (2022-07-13)
  • [ 478c6bb ] fix test compilation [Geoffroy Couprie] (2022-07-13)
  • [ e25013f ] fix warnings [Geoffroy Couprie] (2022-07-13)
  • [ 4e17f86 ] fix doc build [Geoffroy Couprie] (2022-07-13)
  • [ 4806fa1 ] fix the rustls proxy [Geoffroy Couprie] (2022-07-13)
  • [ 6c70039 ] fix a warning [Emmanuel Bosquet] (2022-07-13)
  • [ 01ec16c ] fix socket removal on start [Emmanuel Bosquet] (2022-07-13)
  • [ 5a62a49 ] safeguard against thread panick in edge case scenario [Emmanuel Bosquet] (2022-07-13)
  • [ dc3edac ] check if a worker exists before trying to upgrade it [Emmanuel Bosquet] (2022-07-13)
  • [ e5f9b1d ] Fix main process upgrade and shutdown [Eloi DEMOLIS] (2022-09-05)
  • [ f423a3e ] Update parser of header value to trim linear white space [Florentin Dubois] (2022-07-13)

🥹 Contributors

Full Changelog: https://github.com/sozu-proxy/sozu/compare/0.13.6...v0.14.0

0.11.17 - 2019-07-24

debug release

Fixed

  • TLS 1.3 metric

Changed

  • removed domain fronting check (temporary)

0.11.16 - 2019-07-23

Fixed

  • detect application level configuration changes in state diff
  • TLS 1.3 is now working properly with OpenSSL

0.11.15 - 2019-07-19

Fixed

  • pass the app id from HTTP protocol to Pipe protocol when in websocket

0.11.14 - 2019-07-18

Added

  • more info in logs about socket errors

0.11.13 - 2019-07-12

Added

  • more logs and metrics around socket errors

Fixed

  • do not clear the metric update flag too soon

0.11.12 - 2019-07-10

Fixed

  • add logs-debug and logs-trace options to sozuctl to fix build on Exherbo

0.11.11 - 2019-07-09

Added

  • send 408 or 504 HTTP errors in case of timeouts
  • backend connection time and response time metrics

Fixed

  • test back socket connections before reusing them

Changed

  • a metric is not sent again if its value did not change
  • the backend id is added as matedata to backend metrics

0.11.10 - 2019-07-04

Fixed

  • test if the backend socket is still valid before reusing it

0.11.9 - 2019-06-28

debug release

0.11.8 - 2019-06-28

Fixed

  • do not duplicate backend if we modified a backend's parameters

0.11.7 - 2019-06-26

Fixed

  • fix infinite loop with front socket

0.11.6 - 2019-06-19

Fixed

  • check for existence of the unix logging socket

Changed

  • access log format: indicate if we got the log from HTTP or HTTPS sessions

0.11.5 - 2019-06-13

Added

  • will print the session's state if handling it resulted in an infinite loop

Fixed

  • websocket protocol upgrade

0.11.4 - 2019-06-07

Fixed

  • wildcard matching

0.11.3 - 2019-06-06

Added

  • sozuctl commands to query certificates
  • more logs and metrics aroundSNI in OpenSSL

0.11.2 - 2019-05-21

Added

  • ActivateListener message for TCP proxies

Fixed

  • wildcard certificate mtching with multiple subdomains in configuration
  • diff of TCP listener configuration

0.11.1 - 2019-05-06

Changed

  • activate jemallocator and link time optimization
  • sozuctl now uses the buffer size defined in the configuration file

Removed

  • procinfo dependency

0.11 - 2018-11-15

breaking changes:

  • the public_address field for listeners is now an Option<SocketAddr>, so it's configuration file format is IP:port instead of just an IP address
  • the AddHttpsFront message does not use a certificate fingerprint anymore, so HTTPS frontends do not depend on certificate anymore

Added

  • unit tests checking for structure size changes
  • more error handling in sozuctl
  • new automatic_state_save option to store the configuration state automatically after changes
  • event notification system: by sending the SUBSCRIBE_EVENTS message, configuration clients can get regular notifications, like messages indicating backend servers are down

Fixed

  • 100 continue behaviour was broken in 0.10 and fixed in 0.10.1
  • sticky session cookies are now sent again
  • Forwarded headers now indicates correct adresses

0.10.0 - 2018-10-25

breaking change: modules have been moved around in sozu-lib

Added

  • sozuctl has a "config check" command
  • sozuctl shows the backup flag for backends
  • sozuctl shows more info for TCP proxys

Removed

  • sozuctl displays an address column for backends, instead of IP and port

Changed

  • new code organization for sozu-lib, with everything related to protocol implementations in src/protocol
  • refactoring of the HTTP protocol implementation
  • in preparation for HTTP/2, the pool now handles instances of Buffer, not BufferQueue

Fixed

  • work on TCP proxy stability
  • reduce allocations in the HTTP parser
  • integer underflow when counting backends in the master state
  • get the correct client IP in the HTTPS proxys logs
  • do not panic when the client disconnects while we're in the Send proxy protocol implementation

0.9.0 - 2018-09-27

Added

  • a futures executor for asynchronous tasks in the master process
  • custom 503 page per application

Changed

  • HTTP parser optimizations
  • renamed various parts of the code and configuration protocol for more consistency

Fixed

  • upgrade process
  • event loop behaviour around abckend connections
  • openssl cipher configuration
  • circuit breaker

0.8.0 - 2018-08-21

  • metrics writing fixes
  • event loop fixes
  • front socket timeout verification
  • configuration state verification optimizations
  • rustls and openssl configuration fixes
  • separate listeners as a specific configuration option
  • configuration file refactoring and simplification
  • zombie session check

0.7.0 - 2018-06-07

  • more metrics
  • circuit breaking in the TCP proxy

0.6.0 - 2018-04-11

  • disable debug and trace logs in release builds
  • rustls based HTTPS proxy
  • ProxyClient trait refactoring
  • proxy protocol implementation
  • option to send metrics in InfluxDB's tagged format
  • PID file

0.5.0 - 2018-01-29

  • TCP proxy refactoring
  • sozuctl UX
  • HTTP -> HTTPS redirection
  • documentation
  • ReplaceCertifacte message

0.4.0 - 2017-11-29

  • remove mio timeouts
  • upgrade fixes
  • optimizations

0.3.0 - 2017-11-21

  • process affinity
  • clean system shutdown
  • implement 100 continue
  • sticky sessions
  • build scripts for Fedora, Atchlinux, RPM
  • systemd unit file
  • metrics
  • load balancing algorithms
  • retry policy algorithms

Added

Changed

Removed

Fixed

0.2.0 - 2017-04-20

  • Event loop refactoring
  • contribution guidelines

0.1.0 - 2017-04-04

Started implementation:

  • TCP proxy
  • HTTP proxy
  • HTTPS proxy with SNI
  • mio based event loop
  • configuration diff messages support
  • buffer based streaming
  • Docker image
  • HTTP keep alive
  • tested getting configuration events directly from AMQP, was removed
  • getting configuration events from a Unix socket
  • configuration bootstrap from a TOML file
  • logger implementation
  • architecture based around master process and worker processes
  • control with command line app sozuctl
  • command library