- Remove idle request interval for agent by @XAMPPRocky in #946
- Implement remaining proxy tests by @Jake-Shadle in #916
- Add node address selection via type and ip kind by @Jake-Shadle in #934
- Add PortPolicy::None by @XAMPPRocky in #940
- Add some performance optimizations by @Jake-Shadle in #944
- Upgrade Agones to 1.40.0 + CRD changes by @markmandel in #945
- Add an optimized token router filter by @Jake-Shadle in #948
- Build single token -> address map by @Jake-Shadle in #978
- Replace
tokio-uring
withio-uring
by @Jake-Shadle in #993 - Update project to beta status by @XAMPPRocky in #997
- Add basic heap stats by @Jake-Shadle in #998
- Fix timestamp/duration unit confusion by @Jake-Shadle in #921
- Fix safety issue by @Jake-Shadle in #922
- Fix phoenix http by @Jake-Shadle in #926
- Don't run
add_host_to_datacenter
by @Jake-Shadle in #931 - Fix infinite loop by @Jake-Shadle in #956
- Ignore config maps for agents by @Jake-Shadle in #957
- Fix relay listener updates by @Jake-Shadle in #966
- Increase downstream->upstream buffer by @XAMPPRocky in #969
- Cap error heap usage by @Jake-Shadle in #987
- Unstick release 0.9.0 by @markmandel in #1002
- cargo update + flake fixes by @markmandel in #930
- Bump google.golang.org/protobuf from 1.32.0 to 1.33.0 in /build/ci/github-bot by @dependabot in #907
- Prep for 0.9.0-dev by @markmandel in #908
- Test refactor proposal by @Jake-Shadle in #909
- Add more logs to phoenix service by @XAMPPRocky in #913
- Reenable test by @Jake-Shadle in #914
- Update to Rust 1.77.0 by @XAMPPRocky in #912
- Make idle request logs debug by @XAMPPRocky in #915
- Add change detection log by @XAMPPRocky in #917
- Add debugging to phoenix http service by @Jake-Shadle in #919
- Make unknown gameserver log debug by @XAMPPRocky in #923
- Slight test improvements by @Jake-Shadle in #925
- Bump golang.org/x/net from 0.19.0 to 0.23.0 in /build/ci/github-bot by @dependabot in #928
- Upgrade Agones CRD by @XAMPPRocky in #937
- Update kube to 0.91 by @XAMPPRocky in #941
- Add kube@0.91 to skip-tree by @XAMPPRocky in #943
- Remove manual build of rust-linux-darwin-builder by @markmandel in #947
- Add test for hashed token router by @XAMPPRocky in #950
- Move related crates into crates directory by @XAMPPRocky in #961
- Always build token maps by @Jake-Shadle in #962
- Move xDS and protobuf definitions into separate crates. by @XAMPPRocky in #963
- Nuke non-delta streams by @Jake-Shadle in #965
- Move MaxmindDb::lookup to session creation by @XAMPPRocky in #968
- Guide: Show command options for
manage providers
by @markmandel in #971 - Github: PR Labeler action by @markmandel in #972
- Build tooling updates and fixes. by @markmandel in #974
- Update agent documentation by @XAMPPRocky in #976
- Make xDS library generic over any resource type. by @XAMPPRocky in #967
- Update crates by @Jake-Shadle in #977
- Cleanup by @Jake-Shadle in #979
- Rename HashedTokenRouter -> TokenRouter by @Jake-Shadle in #980
- Reduce ASN related allocations by @Jake-Shadle in #991
- Generate reference docs from proto files by @markmandel in #982
- Update crates/cargo-deny by @Jake-Shadle in #992
- Add Apache Headers to those that are missing by @markmandel in #999
- Docs for Heap Allocation Metrics by @markmandel in #1000
- Build: More explicit container caching by @markmandel in #1001
- Release 0.9.0 by @markmandel in #996
Full Changelog: https://github.com/googleforgames/quilkin/compare/v0.8.0...v0.9.0
- Move admin server to separate OS thread by @XAMPPRocky in #841
- Use ClusterMap for Filter::read by @XAMPPRocky in #855
- Move game traffic sockets to io-uring by @XAMPPRocky in #850
- Add lz4 support by @Jake-Shadle in #868
- Add Configurable gRPC message size environment variable by @XAMPPRocky in #870
- Move xDS proxy task to its own thread+runtime by @XAMPPRocky in #871
- Change debug symbols profile release -> bench by @Jake-Shadle in #879
- Add initial support for delta xDS by @Jake-Shadle in #882
- Add pprof endpoint by @XAMPPRocky in #875
- ClusterMap benchmarks by @Jake-Shadle in #856
- Update Unreal Engine Plugin by @XAMPPRocky in #778
- Implement Phoenix Network Coordinates by @XAMPPRocky in #854
- Improve compile times by @Jake-Shadle in #896
- Move non-linux builds to github by @Jake-Shadle in #899
- Update max_delay to 2 sec by @zezhehh in #840
- Move pipeline errors from metrics to a fixed interval report by @XAMPPRocky in #843
- Remove unwraps from proxy::sessions by @XAMPPRocky in #849
- Commit Cargo.lock by @Jake-Shadle in #867
- Fix PoolBuffer::split by @Jake-Shadle in #869
- Fix: warning: failed to get HEAD path by @markmandel in #878
- Send back an empty delta response for initial
ignore-me
by @Jake-Shadle in #892 - Make the ready check has endpoints OR has xDS connection by @XAMPPRocky in #872
- Fix health_server test by @Jake-Shadle in #897
- Build: Https on packages.cloud.google.com by @markmandel in #903
- Prep for 0.8.0 by @markmandel in #831
- Remove spawn task for each packet. by @XAMPPRocky in #842
- Move cluster into net by @XAMPPRocky in #845
- Update kubernetes watch configuration to prioritise performance by @XAMPPRocky in #844
- Minor cleanup by @Jake-Shadle in #846
- Update xds client by @XAMPPRocky in #848
- Remove built dependency by @Jake-Shadle in #847
- Refactor benchmarks by @Jake-Shadle in #853
- Update to Rust 1.74.0 by @XAMPPRocky in #859
- Remove Watch requirements on Clone/PartialEq by @Jake-Shadle in #876
- Split out changes by @Jake-Shadle in #883
- Bump zerocopy from 0.7.26 to 0.7.31 by @dependabot in #886
- Bump unsafe-libyaml from 0.2.9 to 0.2.10 by @dependabot in #888
- Update dependencies on GitHub Bot by @markmandel in #889
- Bump h2 from 0.3.22 to 0.3.24 by @dependabot in #891
- Remove agent note by @XAMPPRocky in #894
- Update CODEOWNERS by @XAMPPRocky in #895
- Remove protobuf_src from example by @Jake-Shadle in #898
- Bump mio from 0.8.10 to 0.8.11 by @dependabot in #900
- Use newly published deny by @Jake-Shadle in #901
- Add licence.html to release quilkin.zip by @markmandel in #905
Full Changelog: https://github.com/googleforgames/quilkin/compare/v0.7.0...v0.8.0
- Move QCMP to a seperate port by @XAMPPRocky in #741
- Rename: ConcatenateBytes ➡️ Concatenate by @markmandel in #813
- Add ASN cardinality to packet metrics by @XAMPPRocky in #746
- Unit and integration test debugging enhancements by @markmandel in #762
- Add logging for what endpoints are added and removed by @XAMPPRocky in #774
- Add
qcmp ping
command by @XAMPPRocky in #770 - add cli option for log formatting (Closes #531) by @Baschtie in #784
- Locally listen on IPv4 and IPv6 addresses by @markmandel in #788
- Add --idle-request-interval-secs by @XAMPPRocky in #790
- Examples for relay configuration by @markmandel in #807
- Add quickstart for the relay setup by @XAMPPRocky in #772
- Integration tests for Agones Relay and Agent by @markmandel in #811
- Add health checks for each service by @XAMPPRocky in #802
- Refactor sessions to use socket pool by @XAMPPRocky in #815
- Release aarch64-apple-darwin binary by @markmandel in #829
- Fix: mdbook-variables failing on doc building. by @markmandel in #764
- Fix watch on clusters, by removing inner Arc by @XAMPPRocky in #773
- Late initialise upstream socket to prevent session map lock by @XAMPPRocky in #781
- Fix version issue when publishing release docs by @markmandel in #793
- Fix dead lock in SessionPool by @XAMPPRocky in #826
- Update Agones to 1.33.0 by @markmandel in #760
- Agones: Update simple-game-server image to latest by @markmandel in #763
- Update to Rust 1.71.1 (cargo CVE-2023-38497) by @markmandel in #767
- Security: Update trust-dns-resolver by @markmandel in #779
- Update to Distroless based on Debian 12 by @markmandel in #805
- Prep: 0.7.0-dev by @markmandel in #759
- Add test for Cluster::merge by @XAMPPRocky in #765
- Automatically update approved PRs with automerge by @markmandel in #766
- Small doc improvements by @markmandel in #768
- Updated protoc-gen-validate to v1.0.2 by @markmandel in #769
- Update Tokio: 1.32.0 by @markmandel in #776
- Update dependencies and Rust version by @XAMPPRocky in #782
- README description update by @markmandel in #783
- fix timestamp warnings by @XAMPPRocky in #791
- Move more logs to debug by @XAMPPRocky in #796
- Refactor ClusterMap by @XAMPPRocky in #785
- Move maxmind information log to debug and per-session by @XAMPPRocky in #797
- Update to the latest Xonotic release. by @markmandel in #799
- Fix broken Envoy link. by @markmandel in #801
- Update CODEOWNERS by @XAMPPRocky in #803
- Change quickstart example README.md to point to docs. by @markmandel in #800
- Update Existing Examples and Quickstarts by @markmandel in #808
- Update to Rust 1.73.0 by @XAMPPRocky in #809
- Update dependencies by @XAMPPRocky in #810
- Docs: Connect Agent and Relay to Providers by @markmandel in #812
- Cloud Build: Put logs back in public bucket by @markmandel in #817
- Bump golang.org/x/net from 0.7.0 to 0.17.0 in /build/ci/github-bot by @dependabot in #819
- Examples: Update readiness and liveness checks. by @markmandel in #821
- Make noisy relay logs debug by @XAMPPRocky in #823
- Reorganise modules by @XAMPPRocky in #824
- Loadtesting fixes by @XAMPPRocky in #827
- @Baschtie made their first contribution in #784
Full Changelog: https://github.com/googleforgames/quilkin/compare/v0.6.0...v0.7.0
- Refactor documentation layout and define default ports by @XAMPPRocky in #688
- Refactor filter metrics into a single vector of metrics with labels by @XAMPPRocky in #736
- Add region parameters for control planes by @XAMPPRocky in #696
- Add initial implementation of relay service by @XAMPPRocky in #698
- Add environment variables to config providers by @XAMPPRocky in #707
- Add test for relay proxy routing (and support for file providers) by @XAMPPRocky in #710
- Resolve DNS asynchronously by @XAMPPRocky in #721
- Update termination code to allow proxies to wait until all sessions expire by @XAMPPRocky in #740
- Implement Agent service by @XAMPPRocky in #744
- Remove shutdown_rx from downstream loop by @XAMPPRocky in #742
- Add hotfix around xDS stream sometimes not responding with changes by @XAMPPRocky in #683
- Refactor provider task retrying and move providers to their own module by @XAMPPRocky in #702
- Workaround for mdbook-variables by @markmandel in #705
- Don't drop the stream client until the function completes by @XAMPPRocky in #709
- Recover when stream channel breaks by @XAMPPRocky in #713
- Fix proxy not retrying from received xDS error by @XAMPPRocky in #727
- Find the endpoint to delete using partial information from the server in case some information is missing by @XAMPPRocky in #729
- Clamp provider retry delay to five minutes by @XAMPPRocky in #733
- Improve server delete logic by @XAMPPRocky in #738
- Migrate image to supported distroless tag by @markmandel in #693
- Updates for 0.6.0-dev by @markmandel in #681
- Add warning when watcher fails to send an update by @XAMPPRocky in #684
- Remove unneeded pin requirement by @XAMPPRocky in #692
- Strip Config of all service specific configuration for now by @XAMPPRocky in #694
- Add debug line for cli parameters by @XAMPPRocky in #706
- Add filter chain discovery to the relay by @XAMPPRocky in #703
- Bump golang.org/x/net from 0.4.0 to 0.7.0 in /build/ci/github-bot by @dependabot in #708
- Bump golang.org/x/crypto from 0.0.0-20210921155107-089bfa567519 to 0.1.0 in /build/ci/github-bot by @dependabot in #715
continue
rather thanreturn
upon receiving invalid gameserver by @XAMPPRocky in #724- Refactor drop into a single metric, change filters to return a result by @XAMPPRocky in #722
- Include debug info on unknown server in warning by @XAMPPRocky in #732
- Add experimental notification in the docs by @XAMPPRocky in #730
- Use GitHub's Changelog Generation by @markmandel in #735
- Add initial implementation of QCMP by @XAMPPRocky in #676
- Update Rust to 1.69.0 and update dependencies by @XAMPPRocky in #745
- Fix probuf link in docs by @markmandel in #753
- Move session expiry to debug logging. by @markmandel in #754
- Update examples to work with upcoming 0.6.0 by @markmandel in #755
- Update Docs for 0.6.0 Release by @markmandel in #756
- Downgrade trust-dns-resolver by @XAMPPRocky in #748
- Improve missing gameserver warning by @XAMPPRocky in #743
- Add GDC presentation to documentation. by @markmandel in #757
- @dependabot made their first contribution in #708
Full Changelog: https://github.com/googleforgames/quilkin/compare/v0.5.0...v0.6.0
v0.5.0 (2023-01-11)
Breaking changes:
- Rename run command to proxy #661 (XAMPPRocky)
Implemented enhancements:
- [Docs] Agones xDS Provider Quickstart #644
- --version flag for binary #668 (markmandel)
- Agones xDS Provider Quickstart #667 (markmandel)
Fixed bugs:
- xDS dynamic routing stops working after 4-5 days #660
- Docs:
quilkin run
vsproxy
bug in preprocessor #678 (markmandel) - Timeout for xDS gRPPC Client connection #664 (markmandel)
- Add retry for provider task #659 (XAMPPRocky)
- docs/src/proxy/filters/writing_custom_filters: fix port typo #652 (markus-wa)
Closed issues:
- Release 0.4.0 #647
Merged pull requests:
- Make: package_version less brittle #675 (markmandel)
- Replace SessionManager with TtlMap, refactor downstream packet processing to track more errors in metrics #674 (XAMPPRocky)
- Update dependencies #670 (XAMPPRocky)
- Error for invalid endpoint #665 (markmandel)
- Notification bot: Update dependencies #663 (markmandel)
- Move instrument level to trace #658 (XAMPPRocky)
- Make: Move cargo registry to /target/build-image/ #654 (markmandel)
- Update dependencies #651 (XAMPPRocky)
- Remove map_proto_enum and simplify proto enum conversions #650 (XAMPPRocky)
- Bump version to 0.5.0-dev #649 (markmandel)
v0.4.0 (2022-11-15)
Breaking changes:
- Refactor configuration and builder pattern #525 (XAMPPRocky)
- Add
StaticFilter
trait #515 (XAMPPRocky)
Implemented enhancements:
- Variable substitution with mdbook: point release docs at a release branch #609
- Include image built in PR on CI Bot Result #593
- Readiness probe based on number of endpoints #590
- Docker image entrypoint should just be "/quilkin" #583
- Configure basic configuration values with command flags #572
- Be able to configure tracing/log levels #541
- Use reflectors for Agones provider API #532
- Add Metrics and logging to the xDS server #522
- Make
config::Config
compatible with xDS manager #520 - Add admin server for xDS management server #519
- e2e tests for Agones integration #510
- Switch to using
serde\_json::Value
internally overserde\_yaml::Value
#507 - impl
prost::Message
for filter configuration directly. #505 - xDS: Support any filter #486
- More in-depth network metrics about clients (IPv4 and IPv6) #450
- Replace listen distributor task with multithreaded
SO\_REUSEPORT
task. #410 - xDS Example #233
- Total review of guide #645 (markmandel)
- Build macos binaries on ARM #636 (markmandel)
- mdbook-variables for Documentation #629 (markmandel)
- Add timestamp filter #627 (XAMPPRocky)
- Added ASN and Prefix labels to active sessions #621 (XAMPPRocky)
- Agones xDS Provider example #618 (markmandel)
- (Mostly) Build tools working on arm64 #612 (markmandel)
- Docker image entrypoint is now
/quilkin
#607 (markmandel) - Add ASN maxmind database integration #604 (XAMPPRocky)
- Add Build Images to CI results #599 (markmandel)
- Add ready probe endpoint #591 (XAMPPRocky)
- Agones + Quilkin xDS integration test. #587 (markmandel)
- Agones GameServer + Quilkin sidecar test #582 (markmandel)
- Basic Agones GameServer integration test #580 (markmandel)
- Add arguments to
quilkin run
#574 (XAMPPRocky) - Add BUILD_LOCAL to build tools #565 (markmandel)
- Clarify packet direction in traces, use base64 for bytes_to_string #563 (XAMPPRocky)
- Improve build-image incremental workflow #561 (markmandel)
- Implement xDS in Quilkin #552 (XAMPPRocky)
- Run Agones tests in CI #551 (markmandel)
- Dev: Build, Push and Test Agones Integrations #549 (markmandel)
- Tools for Agones e2e testing #545 (markmandel)
- Adding Erin to Cargo Authors. #544 (markmandel)
- Implemented Port reuse for downstream connection. #543 (markmandel)
- Test Utility to enable tracing logging. #537 (markmandel)
- Update xDS doc #528 (rezvaneh)
- Metrics for Match Filter #511 (markmandel)
- Add basic alpha version of the UE4 plugin #485 (XAMPPRocky)
Fixed bugs:
- Fatal error from too old resource version #626
- Get build tooling working on ARM/M1 Mac #608
quilkin\_session\_rx\_bytes\_total
metric seems to not be working #605- [Agones test] create_quilkin_pod should test for more than running #597
- [Agones] Removing/updating token annotation on a GameServer deoesn't update the Endpoint #589
- Metrics having no data after refactors. #588
- xDS: Locality leak on GameServer event handling #585
- Running with Management Server doesn't exit on SIGTERM #575
- Examples need updating to new config format #559
- Cant build with
cross
#530 - mdbook removing space indentation on code examples #503
- Try to recover when the main process fails #634 (XAMPPRocky)
- Fixes for example Grafana dashboard #625 (markmandel)
- Fix not receiving stream pushes #624 (XAMPPRocky)
- Change admin flag to
no-admin
, respect shutdown signal #622 (XAMPPRocky) - Docs, tests and bug fixes for /ready #602 (markmandel)
- Allow gameservers to not have port #598 (XAMPPRocky)
- Fix metrics namespace not always being present #596 (XAMPPRocky)
- Fix metric names in dashboard #595 (XAMPPRocky)
- Add LocalitySet type to ensure there aren't duplicate locality entries #592 (XAMPPRocky)
- Resubscribe to resources after disconnect, fix test flakiness #571 (XAMPPRocky)
- Catch tonic errors in xDS client loop #567 (XAMPPRocky)
- Recover xDS connection if stream terminates #566 (XAMPPRocky)
- Use status.ports rather spec.ports with Agones #562 (XAMPPRocky)
- Only search for config file when required #560 (markmandel)
- Remove cross from build tools #540 (markmandel)
- Update htmltest for test-docs #512 (markmandel)
- Multiple documentation fixes #504 (markmandel)
Security fixes:
- Fix security advisory in chrono #557 (markmandel)
Closed issues:
- Release 0.4.0 Requirements #546
- Add guide documentation for UE4 Plugin #524
- Add guide documentation for xDS server #523
- Release 0.3.0 #499
- Add metrics to
Match
filter. #453 - Proposal: Cut 0.3.0 Release. #444
- Message queues should drop when full #380
- Regex Filter #316
- Alternatives to proto submodules #169
- Consider alternative formats for documenting config parameters #149
Merged pull requests:
- Release 0.4.0 #648 (markmandel)
- Update release instructions to remove
-debug
#646 (markmandel) - Consistency of "packets_dropped_total" metric #641 (markmandel)
- Update to Rust 1.65.0 #640 (XAMPPRocky)
- Implement string interning and symbol resolution for metadata keys #638 (XAMPPRocky)
- Update yaml configuration documentation #635 (markmandel)
- Refactor metrics statics into free fns #633 (XAMPPRocky)
- Agones: Add token removal test. #631 (markmandel)
- Refactor filter model from Context->Response into ref mut Context #630 (XAMPPRocky)
- Connect Timestamp Filter to rest of documentation #628 (markmandel)
- Flatten proxy config section into root #623 (XAMPPRocky)
- Update dependencies #620 (XAMPPRocky)
- Remove duplicate metric #619 (XAMPPRocky)
- Sidecar Example README: Switch to relative paths #617 (markmandel)
- Use
TimedSizedCache
#616 (XAMPPRocky) - Update CODEOWNERS #615 (XAMPPRocky)
- Update to Rust 1.64.0 #614 (XAMPPRocky)
- Refactor session metrics and errors #613 (XAMPPRocky)
- remove unwrap #606 (XAMPPRocky)
- Add short poll to xDS clients as workaround, improve xDS tracing #603 (XAMPPRocky)
- Remove allocated check for deleted gameserver events #594 (XAMPPRocky)
- Relax trait bounds for Default, Deserialize, and Serialize for Slot<T> #581 (XAMPPRocky)
- Move proxy::Server to Proxy and sessions::session to sessions #578 (XAMPPRocky)
- Update example configurations to new format #577 (markmandel)
- Update configuration reference docs #576 (markmandel)
- Refactor CLI organisation, and improve termination #570 (XAMPPRocky)
- Extend
fs::write
test delay, and remove admin server from test to prevent flakiness #569 (XAMPPRocky) - Update to Rust 1.63.0 #568 (XAMPPRocky)
- Use base64 when logging token, add fmt::Display impl for metadata::Value #554 (XAMPPRocky)
- Cleanup of licences and advisories #550 (markmandel)
- Delete Go based xDS #548 (markmandel)
- build/Makefile - convert spaces to tabs #547 (markmandel)
- General testing cleanup #539 (markmandel)
connect\(\)
Sessions socket to Endpoint address #538 (markmandel)- Upgrade Tokio to 1.19.2 #536 (markmandel)
- Update to Rust 1.61.0 #535 (XAMPPRocky)
- Update link to DiscoveryRequest #533 (XAMPPRocky)
- Update to Rust 1.60 #526 (XAMPPRocky)
- Replace serde_yaml with serde_json internally #518 (rezvaneh)
- Use htmltest binary not build from source #516 (markmandel)
- Add conversion to protobuf for most core types #514 (XAMPPRocky)
- Update xDS APIs #502 (XAMPPRocky)
- Preparation for 0.4.0 #501 (markmandel)
- Refactor FilterManager into SharedFilterChain #491 (XAMPPRocky)
- Refactor Metrics Registry into public static #490 (XAMPPRocky)
- Refactor FilterRegistry into private static #489 (XAMPPRocky)
- Add
Debug
forFilterChain
andFilterManager::with\_dynamic
#487 (XAMPPRocky)
v0.3.0 (2022-03-02)
Breaking changes:
- Remove
extensions
from filter identifiers #484 (XAMPPRocky) - Add auto-generation of JSON schema. #478 (XAMPPRocky)
- Add regex capture and rename capture_bytes to capture #458 (XAMPPRocky)
- Add matches filter #447 (XAMPPRocky)
- Add
metadata::Value
#436 (XAMPPRocky) - Add a ttl map and support ratelimiting per IP address #406 (iffyio)
Implemented enhancements:
- Upgrade to Tokio 1.16.0 #475
- Changing dynamic metadata from
Any
. #433 - Provide stack traces for runtime errors. #418
- Accept Docker service hostnames in addition to IP addresses in configuration. #415
- Limit LocalRateLimit per IP #405
- Add support for version based packet processing #401
- Add abstraction for filter state lookup #375
- CI: link checking on documentation #367
- Allowlist filter #343
- Metric: Total Packet Processing time #292
- Add an ID field to filters #174
- Blocklist Filter #158
- Implement a control plane #131
- Filter Idea: Rate limiting #5
- Benchmark comparing read and write throughput #479 (markmandel)
- Update Rust to 1.58.1 #473 (XAMPPRocky)
- Add Pass & Drop filters, Refactor
Match
config #472 (XAMPPRocky) - management-server: update metrics and doc #469 (iffyio)
- Example Grafana Graph for Packet Processing Times #452 (markmandel)
- CI: Documentation test gen, links, images, etc. #449 (markmandel)
- Metric: Total Packet processing time #441 (markmandel)
- xds-server updates #437 (iffyio)
- Add "Rust Doc" link to each Filter #434 (markmandel)
- Documentation for Firewall filter #432 (markmandel)
- Code: Firewall filter #416 (markmandel)
- Support clear bot history on new build #390 (fredagsfys)
- replace slog with tracing in Filter #385 (rezvaneh)
- XDS Management Server #360 (iffyio)
Fixed bugs:
- XDS backoff is broken #461
- 404 on FAQ link in main branch docs. #443
- Fix exponential backoff on xds client retry #465 (markmandel)
- archive_dependencies.sh: Handle no dependencies #463 (markmandel)
- xds: delete snapshot for disconnected proxies #462 (iffyio)
- Docs: Fix broken links #445 (markmandel)
- Fix bug archiving dependencies #442 (markmandel)
- Save iperf3 metrics.json in /quilkin #438 (markmandel)
- Fixes for filter documentation #431 (markmandel)
Security fixes:
- Upgrade Tokio for RUSTSEC-2021-0124 #439 (markmandel)
Closed issues:
- Rename
Matches
toMatch
. #454 - Refactor to source/destination rather than to/from #448
- lack of example of Client Proxy to Separate Server Proxies Pools #403
- Release 0.2.0 #398
- Move from
slog
totracing
#317 - Filter Naming Scheme #291
- [bot] Hide Old Comment On Push #266
- Performance Testing #14
Merged pull requests:
- Release 0.3.0 #500 (markmandel)
- Update CODEOWNERS #498 (XAMPPRocky)
- Update dependencies #497 (XAMPPRocky)
- Update to Rust 1.59 #496 (XAMPPRocky)
- Update xds.md #495 (XAMPPRocky)
- Refactor ClusterManager into SharedCluster #493 (XAMPPRocky)
- Increase Cloud Build timeout to 2h #492 (markmandel)
- Update clap to 3.1 #488 (XAMPPRocky)
- Update CODEOWNERS #477 (iffyio)
- Update dependencies #476 (XAMPPRocky)
- Fix 404 in docs #471 (markmandel)
- Add link to xds sample from xDS guide #470 (markmandel)
- Consistent implementation of source/dest #468 (markmandel)
- Remove src/filters/extensions #467 (markmandel)
- Remove
slog-json
from archive_dependencies.sh #466 (markmandel) - Document Filter naming conventions #464 (markmandel)
- Completely remove
slog
and replace withtracing
#457 (XAMPPRocky) - Update to Rust 1.57 #455 (XAMPPRocky)
- Fix licence field in macros Cargo.toml #451 (markmandel)
- xds-server: Create informers before starting informer factory #446 (cheahjs)
- Align Filter Chain metrics with conventions #440 (markmandel)
- Move xds-management-server to the top-level #435 (XAMPPRocky)
- Refactor AdsClient and switch backoff with tryhard #430 (XAMPPRocky)
- Remove reqwest from dev-dependencies #429 (XAMPPRocky)
- Update to Rust 1.56 and 2021 edition #428 (XAMPPRocky)
- Add RUSTSEC-2020-0159 to ignore list #425 (XAMPPRocky)
- Update dependencies #424 (XAMPPRocky)
- Add eyre for error reporting #423 (XAMPPRocky)
- Move iPerf benchmark to use Docker #421 (XAMPPRocky)
- Replace
SocketAddr
withEndpointAddress
#419 (XAMPPRocky) - Update prometheus to 0.13 #414 (XAMPPRocky)
- Update to Rust 1.55.0 #413 (XAMPPRocky)
- Preparation for 0.3.0 #402 (markmandel)
- GitHub: Issue and PR templates #400 (markmandel)
v0.2.0 (2021-09-22)
Breaking changes:
- Add a /config endpoint #396 (iffyio)
- Use hostname as default proxy id #391 (iffyio)
- Move to run and test subcommand setup #369 (XAMPPRocky)
- Add a type for session keys #364 (iffyio)
- Refactor Endpoint and Metadata from cluster and config into one type. #358 (XAMPPRocky)
- Move I/O and configuration out of runner::run #350 (XAMPPRocky)
- Filter Extension Re-organisation #293 (XAMPPRocky)
Implemented enhancements:
- Make a quilkin crate #232
- Always backoff and retry management server #392 (iffyio)
- Hash load balancer #381 (gilesheron)
- CI: Add cross compile and basic image test #370 (markmandel)
make docs
to preview documentation locally #366 (markmandel)- Add "examples" page to the documentation. #362 (markmandel)
- GH Action: Sizing labels on PRs #353 (markmandel)
- Add
cargo-deny
to CI by adding tomake test
#340 (markmandel) - Add a companies using Quilkin section #335 (luna-duclos)
- Add naive benchmark #321 (XAMPPRocky)
Fixed bugs:
- Fix duplicate metric registration for filters #397 (iffyio)
- Include endpoint token and metadata from cluster update #359 (iffyio)
- Fix for change: --filename to --config #355 (markmandel)
Security fixes:
- Security: Updated tokio + prost-types dependencies #341 (markmandel)
Closed issues:
- Add admin endpoints to introspect proxy config #394
- Review Docs: Writing Custom Filters for API changes #373
- Create monthly community meeting #372
- Build:
make docs
to preview documentation locally #365 - Add Cargo Deny to
make test
#327 - Release 0.1.0 #325
- 0.1.0 Release Schedule #313
- Refactor Filter Module Structure #280
- review metrics to prevent high-cardinality data #263
Merged pull requests:
- Release 0.2.0 #399 (markmandel)
- Docs: Updated Custom Filters #395 (markmandel)
- Exit on SIGTERM #393 (iffyio)
- Update custom filter example and add CI #389 (markmandel)
- Add github CODEOWNERS file #388 (iffyio)
- Remove test subcommand from clap for 0.2 #386 (XAMPPRocky)
- README: Add community meetings #377 (markmandel)
- Fix 404: Writing Custom Filters #376 (markmandel)
- Delete filter_registry.rs #368 (XAMPPRocky)
- Update doc links #363 (iffyio)
- Better language on using.md #361 (markmandel)
- Remove redundant cfg(test) #357 (XAMPPRocky)
- Fix README.md development documentation links #356 (markmandel)
- Remove initial xds update delay #354 (iffyio)
- Remove need for nightly in CI and developer guide #352 (markmandel)
- Update to Rust 1.54.0 #351 (XAMPPRocky)
- Documentation snapshot/release README.md section #348 (markmandel)
- Oops, most of the badges didn't have links #342 (markmandel)
- Make licence explicit in Cargo.toml #338 (markmandel)
- Fixed README.md typo: where -> were #337 (moppius)
- Add announcements to the README #336 (markmandel)
- Move packet buffer to heap #334 (iffyio)
- Update BRANDING.md #333 (thisisnotapril)
- Create BRANDING.md #332 (thisisnotapril)
- Fix link to twitter page #331 (markmandel)
- Preparation for 0.2.0 #329 (markmandel)
- Add mdbook and GitHub pages deployment #319 (XAMPPRocky)
- Cleanup other parts of the public API. #308 (XAMPPRocky)
v0.1.0 (2021-07-09)
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:
- Release 0.1.0 #326 (markmandel)
- 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