From 7bdacbcb0ee84ea98adba022b4f7f704d6df8902 Mon Sep 17 00:00:00 2001 From: Mark Mandel Date: Thu, 29 Apr 2021 19:16:52 -0700 Subject: [PATCH 1/2] It's a FAQ Work on #62 --- README.md | 2 +- docs/faq.md | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 docs/faq.md diff --git a/README.md b/README.md index a7af5dacdf..ab09cc318f 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ Not to be used in production systems. * See the [Session documentation](./docs/session.md) for an overview of quilkin sessions and metrics. * See [Filter documentation](./docs/extensions/filters/filters.md) for a list of filters, and their configuration options. * The [Administration interface](./docs/admin.md) provides access to health and metrics endpoints. - +* Finally, we also have a [FAQ](./docs/faq.md) ## Code of Conduct Participation in this project comes under the [Contributor Covenant Code of Conduct](code-of-conduct.md) diff --git a/docs/faq.md b/docs/faq.md new file mode 100644 index 0000000000..ed57d27b94 --- /dev/null +++ b/docs/faq.md @@ -0,0 +1,49 @@ +# FAQ + +## Just how fast is Quilkin? What sort of performance can I expect? + +The project is still in alpha state right now, so no major optimisations for performance have been performed at this +stage, but for right now it is _fast enough_ for this release. + +We plan on working more on performance in upcoming releases, both from an optimisation and observability perspective. + +We will always recommend you run your own load tests on your platform and configuration, as performance will always +change depending on the underlying hardware, number of filters and configurations and more. + +## Can I integrate Quilkin with C++ code? + +Quilkin is also released as a [library](https://crates.io/crates/quilkin), so it can be integrated with an external +codebase as necessary. + +Using Rust code inside a C or C++ project mostly consists of two parts. + +* Creating a C-friendly API in Rust +* Embedding your Rust project into an external build system + +See [A little Rust with your C](https://docs.rust-embedded.org/book/interoperability/rust-with-c.html) for more +information. + +Over time, we will be expanding documentation on how to integrate with specific engines if running Quilkin as a +separate binary is not an option. + +## I would like to run Quilkin as a client side proxy on a console? Can I do that? + +This is an ongoing discussion, and since console development is protected by non-disclosure agreements, we can't +comment on this directly. + +That being said, we are having discussions on how we can release lean versions of certain filters that would work +with known supported game engines and languages for circumstances where compiling Rust or a providing a separate +Quilkin binary as an executable is an option. + +## Any reason you didn't contribute this into/extend Envoy? + +This is an excellent question! [Envoy](https://www.envoyproxy.io/) is an amazing project, and has set many of the +standards for how [proxies are written and orchestrated](./xds.md), and was an inspiration for many of +the decisions made on Quilkin. + +However, we decided to build this project separately: + +* Envoy seems primarily focused on web/mobile network workloads (which makes total sense), whereas we wanted + something specialised on gaming UDP communication, so having a leaner, more focused codebase would allow us to move + faster. +* We found the Rust and Cargo ecosystem easier to work with than Bazel and C++, and figured our users would as well. From 8f5e23e23cc7488e82dd17bf2442fde68f46cb18 Mon Sep 17 00:00:00 2001 From: Mark Mandel Date: Fri, 30 Apr 2021 14:11:05 -0700 Subject: [PATCH 2/2] Review updates. --- docs/faq.md | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/docs/faq.md b/docs/faq.md index ed57d27b94..8eba63a23e 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -2,13 +2,19 @@ ## Just how fast is Quilkin? What sort of performance can I expect? -The project is still in alpha state right now, so no major optimisations for performance have been performed at this -stage, but for right now it is _fast enough_ for this release. +Our current testing shows that on Quilkin shows that it process packets _quite fast_! -We plan on working more on performance in upcoming releases, both from an optimisation and observability perspective. +We won't be publishing performance benchmarks, as performance will always +change depending on the underlying hardware, number of filters, configurations and more. -We will always recommend you run your own load tests on your platform and configuration, as performance will always -change depending on the underlying hardware, number of filters and configurations and more. +We highly recommend you run your own load tests on your platform and configuration, matching your production +workload and configuration as close as possible. + +Our [iperf3](https://iperf.fr/) based performance test in the [examples' folder](../examples/iperf3) is a good +starting point. + +Since this is still an alpha project, we have plans on investigating further performance improvements in upcoming +releases, both from an optimisation and observability perspective as well. ## Can I integrate Quilkin with C++ code? @@ -32,8 +38,8 @@ This is an ongoing discussion, and since console development is protected by non comment on this directly. That being said, we are having discussions on how we can release lean versions of certain filters that would work -with known supported game engines and languages for circumstances where compiling Rust or a providing a separate -Quilkin binary as an executable is an option. +with known supported game engines and languages for circumstances where compiling Rust or providing a separate +Quilkin binary as an executable is not an option. ## Any reason you didn't contribute this into/extend Envoy?