v0.1.0 (2021-07-08)
Implemented enhancements:
- Regular updates to Nightly for CI build step #287
- Convention: quilkin.yaml file #270
- Write a github PR comment notifier for cloudbuilds #259
- Idea: Proc macro for creating filters/filter factories #248
- Add cargo-deny config #239
- Example: Grafana dashboard(s) #234
- Examples for Alpha Launch #228
- Create release process + checklist #213
- Create linux docker images on release #201
- Metrics: Packet processing time #167
- Make metric port configurable #101
- Add support to invoke filter chain in reverse order #92
- Version configuration #77
- FilterChain for each Session #75
- [Alpha Release] Let's write some documentation #62
- Cross Compilation #19
- Expose Metrics #11
- gRPC configuration management control plane API #10
- Filter idea: Simple routing with every packet having the connection id appended #8
- Basic non-transparent UDP proxying from Receiver to all endpoints #7
- Basic non-transparent UDP proxying from Sender to Receiver #6
- [Client] LB across multiple endpoints? #3
- Design and Implementation of Filters #1
- Make + Docker toolchain for development #303 (markmandel)
- Example Grafana dashboard for Quilkin Metrics #300 (markmandel)
- Quilkin logo and Quilly the mascot #289 (markmandel)
- Add rust-toolchain.toml to project #249 (markmandel)
- Quickstart for Agones + Quilkin #235 (markmandel)
- Quickstart using netcat #231 (markmandel)
- Usage documentation #230 (markmandel)
- Agones and Xonotic Examples #229 (markmandel)
- Release checklist #226 (markmandel)
- Create a CHANGELOG.md on release #225 (markmandel)
- Add /live health endpoint to admin server #221 (markmandel)
- Release and Debug image release pipeline #214 (markmandel)
- Build Windows & Linux Binaries in Cloud Build #209 (markmandel)
- Document xDS, filter/endpoint metadata #203 (iffyio)
- Implementation and test of Filter ordering #198 (markmandel)
- Add xDS metrics #195 (iffyio)
- on_read & on-write config for ConcatenateBytes #186 (markmandel)
- Documentation for the Compress filter #181 (markmandel)
- Add XDS Filter implementation #171 (iffyio)
- Implementation of Compression Filter. #162 (markmandel)
- xds fail fast on invalid URI #161 (iffyio)
- Endpoint metadata support from static config #160 (iffyio)
- Generate proto files for XDS filter configs #159 (iffyio)
- Include metadata for XDS endpoints #154 (iffyio)
- Add dynamic proxy configuration #150 (iffyio)
- Add session metrics to docs #143 (iffyio)
- Add example integration architecture documentation #139 (markmandel)
- Add an overview to the documentation #137 (markmandel)
- EndpointAuthentication filter #135 (markmandel)
- Add a ClusterManager abstraction #128 (iffyio)
- Authentication Token Capture Filter #118 (markmandel)
- Add XDS client #115 (iffyio)
- Add XDS logic for cluster and endpoints #112 (iffyio)
- Concat Byte Filter #111 (markmandel)
- Add xds proto code generation #108 (iffyio)
- Be able to pass data between Filters #107 (markmandel)
- Add test helper to manage test resources #106 (iffyio)
- Add GRPC proto submodules #105 (iffyio)
- Added ConnectionConfig to CreateFilterArgs #93 (markmandel)
- Add rate limiter metrics #87 (iffyio)
- Add rate limiter config and integration test #81 (iffyio)
- Convert connection_id's to base64 byte arrays #79 (markmandel)
- Validate that addresses are unique #74 (markmandel)
- Lazy instantiation of Filters #71 (markmandel)
- Add local rate limiting #69 (iffyio)
- Add Validation to Config #68 (markmandel)
- Implementation of endpoint_receive_filter #59 (markmandel)
- Implementation of endpoint_send_filter #58 (markmandel)
- Session should track Endpoint as destination #57 (markmandel)
- Add client proxy load balancing support #56 (iffyio)
- Implementation of local_send_filter #55 (markmandel)
- Implementation of local_receive_filter #53 (markmandel)
- Add recv_addr to endpoint_receive_filter #51 (markmandel)
- Implementation of FilterChain #45 (markmandel)
- Implementation of DebugFilter #44 (markmandel)
- Cleanup Server > run - run_recv_from #43 (markmandel)
- Integration Test for client->server and back #38 (markmandel)
- Expand Filter Trait for sending and receiving #37 (markmandel)
- Ability to be a library and binary #36 (markmandel)
- Stub for default filters #35 (markmandel)
- Implementation of Filter API and FilterRegistry #33 (markmandel)
- Implementation of the Filter data structure. #31 (markmandel)
- Implementation of Session expiration. #27 (markmandel)
- Track expiration times for Sessions #26 (markmandel)
- Architecture diagram for README page. #15 (markmandel)
Fixed bugs:
- CI should use stable clippy #281
- ICE when running
cargo +nightly test
. #276 - Flaky Test: local_rate_limit tests #177
- Bug: Changelog didn't have the version #324 (markmandel)
- Bugs/cleanup in netcat quickstart #322 (markmandel)
- Remove
name
from all examples and configurations #295 (markmandel) - Fix release cloudbuild with rust-toolchain.yaml #255 (markmandel)
- Fix rate limiter flaky test #178 (iffyio)
- Don't panic on debug when packets aren't utf-8 #156 (markmandel)
- Fix bug in UpstreamEndpoints::retain #145 (markmandel)
- Run clippy first in CI #100 (iffyio)
- Filters shouldn't require configs #96 (markmandel)
Closed issues:
- Dev: make it easier to make build a container #296
- Give Quilkin Bot Art #278
- Add Error Handling Library #269
- Design Question:
FilterFactory::name
returningString
#251 - Use
rust-toolchain
to manage Rust version. #241 - Migrate CI build step to Artifact Registry #202
- Refactor Compress Filter with on_read & on_write configuration #196
- Refactor Filter to have
read
andwrite
methods #192 - Move deny warnings to CI #189
- CI: Reuse downloaded / compiled libraries between steps #173
- Mark a configuration as having passed validation before using it #172
- Pass shutdown channel to run_prune_sessions #165
- Implement session close inside drop #164
- Is there a benefit to proxy_mode? #163
- Avoid need to clone metadata keys #155
- Set log level #153
- Remove name field from Endpoint objects #152
- Do not parse packets as utf8 #151
- Refactor UpstreamEndpoints retain to return enum #146
- Avoid copying endpoints list for every packet #138
- Proxy config file format #130
- Add default method impl to Filter trait #124
- Use custom struct implementation for filter values #122
- Add documentation entry for filter values #121
- Public chat room #119
- Refactor Client.lb_policy into it's own filter #103
- FilterChain: Arguments should be a context object, and return a response object #94
- Add helper to manage test resources #84
- Add clippy to ci #82
- Consolidate Filter Trait to two functions #80
- Add health endpoint #73
- Avoid unnecessary cloning in Filter trait #72
- Use a consistent pattern for error handling #67
- Filter Idea: Compression Filter #47
- Should sender/receiver be client/server as concepts? #22
- Integration Tests #4
- Continuous Integration #2
Merged pull requests:
- Ignore priority/wontfix for changelog #323 (markmandel)
- Tweaks to release checklist. #314 (markmandel)
- Move Cloud Build test and release to Makefile #312 (markmandel)
- Exclude items from crate #311 (markmandel)
- Remove redundant clones #307 (XAMPPRocky)
- Nightly builds of CI and Release Cloud Build Steps #306 (markmandel)
- Use
thiserror
for Error definitions #304 (XAMPPRocky) - Fix for Apache Licence header #302 (markmandel)
- Fix metric typo in proxy documentation #299 (markmandel)
- Center image in README #298 (XAMPPRocky)
- Add Prometheus scraping to Xonotic example #297 (markmandel)
- Update release checklist to include quilkin-macros #294 (markmandel)
- Output the rust version for each build. #288 (markmandel)
- Refactor and break out top-level filter module. #286 (XAMPPRocky)
- Use
include\_str!
instead ofdoc\(include\)
#284 (XAMPPRocky) - Use channel size of 1 to send xds updates #283 (iffyio)
- Fixes from clippy #282 (XAMPPRocky)
- Add default configuration file conventions. #279 (XAMPPRocky)
- Use 2018 mod style #277 (XAMPPRocky)
- Use sampled logging for token router errors #275 (iffyio)
- Reject config if it contains unknown fields #274 (iffyio)
- Wait for execution result channel before recving #273 (iffyio)
- Token Router: Note about token authorship #271 (markmandel)
- Remove Session metric upstream & downstream labels #268 (markmandel)
- Implement Github notification bot. #264 (markmandel)
- Add execution measurement metrics to
FilterChain
#262 (XAMPPRocky) - Update dependencies, add deny.toml #261 (XAMPPRocky)
- Fix links in rustdoc documentation #260 (XAMPPRocky)
- Use clap macros for about and name info #257 (XAMPPRocky)
- Improvements to Agones+Xonotic examples #254 (markmandel)
- Add shutdown-rx to SessionManager::run_prune_sessions #253 (XAMPPRocky)
- Add proc-macro for importing protobuf and defining filter IDs. #252 (XAMPPRocky)
- Roadmap Complete - Remove from README #250 (markmandel)
- Update Rust version to 1.51 #247 (XAMPPRocky)
- Clippy fixes #246 (XAMPPRocky)
- Refactor UpstreamEndpoints::retain #245 (XAMPPRocky)
- Close Session on drop, refactor
SessionManager::prune\_sessions
#244 (XAMPPRocky) - Add documentation for writing filters #243 (iffyio)
- Add missing licences. #242 (markmandel)
- Point COC contact to a Google Group. #240 (markmandel)
- It's a FAQ #238 (markmandel)
- Prepare to be released on crates.io #237 (markmandel)
- Updates to README.md #236 (markmandel)
- iperf3 performance testing example #227 (markmandel)
- Merge sessions map and pruning logic #224 (iffyio)
- Debug Filter: Capitalise log statement. #223 (markmandel)
- Tick off gRPC configuration management control plane API #222 (markmandel)
- Pull
Admin
module out ofMetrics
#220 (markmandel) - Missing
source
inClusterManager
logger. #219 (markmandel) - Fix
Admin
Config model and documentation #218 (markmandel) - Update slog and update logging to be consistent #217 (markmandel)
- Fix old comment on Config. #216 (markmandel)
- Move setup logic to lib to enable reuse #215 (iffyio)
- Update proto submodules #212 (iffyio)
- Wrap metadata keys in Arc #211 (iffyio)
- Add xDS integration test #210 (iffyio)
- Expose binary version as debug/release #208 (markmandel)
- Add validated config type #207 (iffyio)
- Use the same metrics registry for filters #206 (iffyio)
- Move deny warnings to CI #205 (markmandel)
- Migrate Container Registry ➡ Artifact Registry #204 (markmandel)
- Mention filter reverse ordering in docs #200 (iffyio)
- Ticking off roadmap items #199 (markmandel)
- Refactor Compress with on_read & on_write config #197 (markmandel)
- Rename Filter to align with Envoy concepts #194 (markmandel)
- Add proto config for all filters #193 (iffyio)
- Use an async task pool to process packets #191 (iffyio)
- Enable XDS filter manager #190 (iffyio)
- Add Ifeanyi to the authors file #187 (markmandel)
- Replace warp with hyper for http server impl #184 (iffyio)
- Remove doctest workaround for proto generated comments #183 (iffyio)
- Reuse config deserialization logic across filters #182 (iffyio)
- Add proxy configuration reference to README.md #180 (markmandel)
- Integration test for Compress filter #179 (markmandel)
- Improve Cloud Build build times #176 (markmandel)
- Reuse static config deserialise logic #175 (iffyio)
- Upgrade to Tokio 1.0 #170 (markmandel)
- Removal of Proxy Mode #168 (markmandel)
- Perf improvements #166 (iffyio)
- Bunch of files without licences #157 (markmandel)
- Updated to the Roadmap #148 (markmandel)
- Update proxy configuration format #144 (iffyio)
- Fix for CI grabbing submodules #142 (markmandel)
- Default Filter trait implementation #141 (markmandel)
- Add wrapper over Endpoints #140 (iffyio)
- Remove remanining returns of Tokio Result #136 (iffyio)
- Fix unit test for CaptureBytes #134 (markmandel)
- Rename CaptureBytes context_key ➡ metadata_key #133 (markmandel)
- Refactor Filter Values to Dynamic Metadata #132 (markmandel)
- Replace oneshot shutdown signal with watch channel #129 (iffyio)
- Updated development and community documentation #127 (markmandel)
- Upgrade Rust toolchain #126 (markmandel)
- Make LoadBalancer a filter #125 (iffyio)
- Typo: ConcatBytes ➡ ConcatenateBytes #117 (markmandel)
- Docs: Config is an object not an any #116 (markmandel)
- Removal of client->connection_id #114 (markmandel)
- Rename DebugFilter -> Debug to avoid redundancy #113 (markmandel)
- Let's clippy our tests 👍 #110 (markmandel)
- Use builder to create Config #109 (iffyio)
- Pass context objects in filter APIs #102 (iffyio)
- Validate config from external docs #99 (iffyio)
- Refactor: debug_filter -> debug #95 (markmandel)
- Add missing licence #91 (markmandel)
- Test utility for filters with no change. #90 (markmandel)
- Add filters docs and external doc tests support #89 (iffyio)
- Documentation for LocalRateLimit Filter Metrics #88 (markmandel)
- Add clippy to ci and fix warnings #85 (iffyio)
- Refactor Filter to two functions #83 (markmandel)
- Integration test for DebugFilter #78 (markmandel)
- Add metrics integration test #76 (iffyio)
- Cloud Build timeout to 30m #66 (markmandel)
- Add metrics support #65 (iffyio)
- End to End test for the TestFilter #64 (markmandel)
- Integration tests reusable components #61 (markmandel)
- Unit test for endpoint send & local receive filter #60 (markmandel)
- Remove redundant async and fix comment typos #54 (iffyio)
- Move TestFilters into test_utils #52 (markmandel)
- Refactor UDP Test Utils to be more flexible #50 (markmandel)
- Remove
async
from some Server functions #49 (markmandel) - Update Readme Roadmap #48 (markmandel)
- Refactor Config.get_endpoints() #46 (markmandel)
- Cleanup Server > run - run_prune_sessions #42 (markmandel)
- Server tests, drop 'server_ prefix. #41 (markmandel)
- Cleanup Server > run - run_receive_packet #40 (markmandel)
- Cleanup consistency with channel import #39 (markmandel)
- Upgrade CI to Rust 1.42.0 #34 (markmandel)
- Use Plain Terminal Logging for test output #32 (markmandel)
- Refactor Session and Server into separate modules #29 (markmandel)
- Cloud Build CI implementation #28 (markmandel)
- Upgrade dependencies. #25 (markmandel)
- Tests for Server::run #24 (markmandel)
- Rename sender/receiver to client/server #23 (markmandel)
- Tests for Session::new #21 (markmandel)
- Test for Server::process_receive_packet_channel #20 (markmandel)
- Test for Server::process_receive_socket #18 (markmandel)
- Test for Server::ensure_session #17 (markmandel)
- Test for Session::send_to #16 (markmandel)
* This Changelog was automatically generated by github_changelog_generator