See milestone v0.15.0
- Added support of
brotli
(passthrough), see [7d9b560
] - Remove
OpenSSL
in favor ofRusTLS
, see [22bf673
], [d8f6b30
], [79755c8
] and [e202d1c
] - Merge Sozu ACME implementation, see [
339277d
] and [7118e64
]
- Update
RPM
packaging, see [0776217
], [37e90c2
], - Update dependencies and refactor a bunch of source code to prepare h2, see [ a lot of commits below 😛 ]
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
]
- [
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
)
- [
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 removectl
crate and addcommand
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
)
- [
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
)
- [
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
)
- [
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
)
- @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
- 💪 Improve documentation about the lifecycle of a session, see
7e223ee
,50a940a
,a13eb35
and2b6706c
- 🔑 Update TLS cipher suites, see
3af39a6
- 🔧 Use Rust edition 2021 and update dependencies, see
693bc84
,8f4449c
,e14109b
,339ed21
,f064d8b
and0e3fffe
- [
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
)
- @Wonshtrum
- @Keksoj
- @FlorentinDUBOIS
Full Changelog: https://github.com/sozu-proxy/sozu/compare/v0.14.0...0.14.1
- 🚀 A new HTTP/1 router, see
5b58b91
,016d89c
,a9dd46e
,043b928
,c8504d4
,5dc5c00
,c5b9bfa
,f96d1ac
,af38431
- 🤩 Bootstrap HTTP/2 work, see
f247ce3
,65d5043
,6da9038
, - 1️⃣ One command line to rules them all, see
8555e44
- ✨ Improve metrics, see
b7fa649
,8ffca7f
,9e6bd1d
,7515a7e
,809a481
,67b98d0
,086fdca
,3b956fb
,5691fb9
,effc0a9
,829ad4b
,3de4cb7
,6dd7f2f
,5427107
,c271481
,7af7a98
,d0f853a
,aa1176a
,1c2c87a
,5309acb
,751c2e8
,daacf30
,4f6a47f
,985afc0
,3418b6f
,f2d07eb
,ab34222
,aaf2224
,f1dec19
,67445c4
,ae8d9c1
,b0844e3
,9eb2c01
,e774cff
,81f24c4
,c02b130
,ce2c764
- 🙈 Return a HTTP 503 status code when we reach too many connection, see
a82a83f
- Unified TLS certificate lifecycle and management, see
a7952a1
,bbd4f5f
,7276e17
- 1️⃣ Set event-based command handling, see
5f62687
,3c7ab65
,d322bc2
,33b6e11
,5bbde99
,3c24088
- 💪 Allow to set custom tags on logs, see
115b9b1
,a9959ba
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.
- [
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
)
- [
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 usePartialOrd
andOrd
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
)
- [
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
)
- [
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
)
- @arnolem made their first contribution in sozu-proxy#727
- @av-elier made their first contribution in sozu-proxy#746
- @sjames made their first contribution in sozu-proxy#757
- @DeLaBatth made their first contribution in sozu-proxy#754
- @LupusMichaelis made their first contribution in sozu-proxy#755
- @Wonshtrum made their first contribution in sozu-proxy#797
- @Geal
- @Keksoj
- @FlorentinDUBOIS
Full Changelog: https://github.com/sozu-proxy/sozu/compare/0.13.6...v0.14.0
debug release
- TLS 1.3 metric
- removed domain fronting check (temporary)
- detect application level configuration changes in state diff
- TLS 1.3 is now working properly with OpenSSL
- pass the app id from HTTP protocol to Pipe protocol when in websocket
- more info in logs about socket errors
- more logs and metrics around socket errors
- do not clear the metric update flag too soon
- add logs-debug and logs-trace options to sozuctl to fix build on Exherbo
- send 408 or 504 HTTP errors in case of timeouts
- backend connection time and response time metrics
- test back socket connections before reusing them
- a metric is not sent again if its value did not change
- the backend id is added as matedata to backend metrics
- test if the backend socket is still valid before reusing it
debug release
- do not duplicate backend if we modified a backend's parameters
- fix infinite loop with front socket
- check for existence of the unix logging socket
- access log format: indicate if we got the log from HTTP or HTTPS sessions
- will print the session's state if handling it resulted in an infinite loop
- websocket protocol upgrade
- wildcard matching
- sozuctl commands to query certificates
- more logs and metrics aroundSNI in OpenSSL
- ActivateListener message for TCP proxies
- wildcard certificate mtching with multiple subdomains in configuration
- diff of TCP listener configuration
- activate jemallocator and link time optimization
- sozuctl now uses the buffer size defined in the configuration file
- procinfo dependency
breaking changes:
- the
public_address
field for listeners is now anOption<SocketAddr>
, so it's configuration file format isIP: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
- 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
- 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
breaking change: modules have been moved around in sozu-lib
- sozuctl has a "config check" command
- sozuctl shows the backup flag for backends
- sozuctl shows more info for TCP proxys
- sozuctl displays an address column for backends, instead of IP and port
- 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
- 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
- a futures executor for asynchronous tasks in the master process
- custom 503 page per application
- HTTP parser optimizations
- renamed various parts of the code and configuration protocol for more consistency
- upgrade process
- event loop behaviour around abckend connections
- openssl cipher configuration
- circuit breaker
- 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
- more metrics
- circuit breaking in the TCP proxy
- 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
- TCP proxy refactoring
- sozuctl UX
- HTTP -> HTTPS redirection
- documentation
- ReplaceCertifacte message
- remove mio timeouts
- upgrade fixes
- optimizations
- 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
- Event loop refactoring
- contribution guidelines
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