Skip to content

Releases: googleforgames/quilkin

v0.8.0

13 Mar 08:26
7b54673
Compare
Choose a tag to compare

This is the 0.8.0 release of Quilkin.

To highlight some of the major features for this release:

  • A huge number of performance and reliability updates and improvements.
  • An updated and more flexible Unreal Engine plugin that gives you more options on your packet structure, as well as
    integrated client side load balancing against multiple Quilkin proxies.
  • Quilkin now also includes the ability to get a proxy's latency to each of its connected datacenters when being run as a multi-cluster relay setup.

Check the documentation for details on features, installation and
usage.

Implemented enhancements:

See CHANGELOG for more details on changes.

Images available with this release:

v0.7.0

19 Oct 16:16
492d244
Compare
Choose a tag to compare

This is the 0.7.0 release of Quilkin.

This release brings several large improvements to the Quilkin project.

  • The introduction of quilkin relay and quilkin agent options that allows for multi-cluster proxy and management plane setup and orchestration.
  • A new dual stack Socket implementation that listens on both IPv6 and IPv4 connections, and includes enhanced testing across both IPv4 and IPv6 handling.
  • Quilkin now reuses Endpoint Socket connections, meaning that session count is no longer limited by the number of ports that can be provided on a given machine.
  • A large variety of reliability and performance fixes across the board.

Check the documentation for details on features, installation and usage.

Breaking changes

Implemented enhancements

Security fixes

See CHANGELOG for more details on changes.

Images available with this release:

v0.6.0

10 Jul 18:52
92b4920
Compare
Choose a tag to compare

We are proud to announce version 0.6.0 of Quilkin, with several critical bug fixes and improvements.

Quilkin is a non-transparent UDP proxy specifically designed for use with large scale multiplayer dedicated game server deployments, to ensure security, access control, telemetry data, metrics and more.

When upgrading from version 0.5.0, please be aware there are several breaking changes, so check with the documentation.

This includes:

  • Default ports for different Quilkin modes have changed to make it easier to separate mode workflows on a single machine.
  • Most Filter metrics have been consolidated under a metric value, separated by label.

This release also fixes performance issue with DNS resolution, as well as several reliability issues with the Agones integration.

Check the documentation for details on features, installation and usage.

Breaking changes

  • 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

Implemented enhancements

See CHANGELOG for more details on changes.

Images available with this release:

v0.5.0

12 Jan 13:58
22021eb
Compare
Choose a tag to compare

This is the 0.5.0 release of Quilkin.

We are aiming to keep up a regular cadence of releases since the long break between 0.3.0 and 0.4.0!

This release includes:

  • A breaking change: quilkin run is now quilkin proxy, which better explains what it is doing.
  • Critical bug fixes for xDS integration
  • A xDS + Agones provider quickstart in the documentation.

Check the documentation for details on features, installation and usage.

Breaking changes:

Implemented enhancements:

See CHANGELOG for more details on changes.

Images available with this release:

v0.4.0

16 Nov 08:37
1d414cb
Compare
Choose a tag to compare

Introduction

Hello everyone, we're proud to announce version 0.4.0 of Quilkin! Quilkin is a non-transparent UDP proxy specifically designed for use with large scale multiplayer dedicated game servers deployments, to ensure security, access control, telemetry data, metrics and more. It is designed to be used behind game clients as well as in front of dedicated game servers.

This is a huge release of Quilkin, with many breaking changes across the entire system, so please check the updated
documentation for new runtime arguments, configuration formats, new filters and changes to metrics. We'd like to highlight of the biggest changes for Quilkin.

Improved CLI

Quilkin now exposes some configuration through its CLI, allowing you to much more easily use and try out Quilkin without requiring you to write a configuration file. For example, you can now a run simple static proxy like so;

quilkin run --port 7000 --to 127.0.0.1:8000

Builtin xDS Integration

When you move beyond running a single proxy instance, you typically need some kind of controller service to manage all the instances of Quilkin. We've now added a builtin xDS (an industry standard API initially created for envoy) management service into Quilkin, so instead of needing to write your own custom integration, it's provided out of the box, and is as simple as running quilkin manage.

xDS Providers

Quilkin currently comes with two "providers" aimed at two different configuration management use-cases. Both of these behave exactly the same in terms of xDS management, with the only differences being the sources of the configuration.

  • File The file provider watches a specified configuration file in the file system, and updates any active proxies with its configuration. This is perfect for simple setups and development work.
  • Agones When you need to move to managing gameservers through Kubernetes, Quilkin directly integrates with Agones, updating available proxy instances with ready gameservers, allowing you to dynamically and automatically add and remove gameservers from proxies with no effort.

GeoIP Maxmind Integration

Quilkin proxies can now be provided a Maxmind database, and will provide extra information in your metrics and logs related to the ASN/ISP that your client is connecting from. This will allow us provide more in-depth quality of service metrics out of the box that would normally require changes to your game server to be able support.

Check out the documentation for more details on features, installation and usage.

Detailed Changelog

Breaking changes:

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 over serde_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)

Security fixes:

See CHANGELOG for more details on changes.

Images available with this release:

v0.3.0

02 Mar 21:37
ca35819
Compare
Choose a tag to compare

This is the 0.3.0 release of Quilkin.

This release contains several breaking changes, including Rust API changes, individual Filter updates, and the filter
naming convention has been updated. This release also includes additional requirements for creating Filters to
support auto-generation of filter documentation.

There are also several new Filters:

  • Match, Drop and Pass to provide a mechanism to change behaviour based on dynamic metadata,
  • Firewall to allow or block traffic depending on if the incoming traffic's IP and port matches the rules set on
    the Firewall filter.

As well as enhancements to many of the existing Filters and accompanying documentation.

Check the documentation for details on features, installation and usage.

Security fixes:

Breaking changes:

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)
  • 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 (devharis)
  • replace slog with tracing in Filter #385 (rezvaneh)
  • XDS Management Server #360 (iffyio)

See CHANGELOG for more details on changes.

Images available with this release:

v0.2.0

22 Sep 19:54
70e7e16
Compare
Choose a tag to compare

This is the 0.2.0 release of Quilkin.

We're pleased to announce the second release of Quilkin!

This release sees us improve on the API surface for writing Filters, adds a slew of new documentation and examples,
and provide several new features.

Check the documentation for details on features, installation and
usage.

Security fixes:

  • Security: Updated tokio + prost-types dependencies #341 (markmandel)

Breaking changes:

Implemented enhancements:

See CHANGELOG for more details on changes.

Images available with this release:

v0.1.0

09 Jul 19:44
35005f0
Compare
Choose a tag to compare

v0.1.0

This is the 0.1.0 release of Quilkin.

We are very excited to have this first release of Quilkin! We hope you enjoy it! 🎉

Check the documentation for details on features, installation and usage.

Implemented enhancements:

In future releases this section will have a summary of new features, security fixes and breaking changes - but
everything is new for this release 🙂, so for this release - Quilkin is the enhancement!

See CHANGELOG for more details on changes.

Images available with this release: