Skip to content

Latest commit

 

History

History
753 lines (590 loc) · 76.2 KB

CHANGELOG.md

File metadata and controls

753 lines (590 loc) · 76.2 KB

Changelog

See milestone v0.15.0

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

  • @alkavan made their first contribution in sozu-proxy#693
  • @kianmeng made their first contribution in sozu-proxy#830
  • @Wonshtrum
  • @Keksoj
  • @FlorentinDUBOIS

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