K6 licensing AGPLv3

Hi
k6 licensing is AGPLv3. So are we allowed to use it as an internal performance testing tool if we are SaaS ? This does not involved packaging/redistributing the code or will be part of the deployment of the SaaS service. This information is crucial for us to choose k6.

Hi @vkolgi. Thank you for asking. You and I already cleared this up earlier over Slack but I’ll post here as well as this community forum is more public.

Yes, you’re absolutely allowed to use the opensource k6 load testing tool internally in your company under the AGPLv3 license, without a need to buy a separate license or pay us (Load Impact) money. That’s why we released it as opensource in the first place, our ambition is to provide the best developer experience for load testing and through that lens we don’t see the load generation tool itself as the primary business value we provide but rather the SaaS convenience and performance engineering expertise and guidance that we provide on top of it.

With that said, there are two primary “restrictions” of AGPLv3 when it comes to how the source code can be used:

  1. You can’t make modifications to k6 and distribute the modified version without also making the source of that modified version available under AGPLv3.

  2. If you statically or dynamically link any part of the k6 codebase with some other code (a derivative work), the license’s copyleft virality is triggered and that other code also needs to be made available under AGPLv3. When it comes to using the k6 binary and interacting with it from another process or over a network it is not certain exactly how the copyleft virality would apply from what I’ve been told by lawyers with OSS license knowledge.

The two points above have been summarized as follows by https://tldrlegal.com/license/gnu-affero-general-public-license-v3-(agpl-3.0):

You must disclose your source code when you distribute, publish or serve (i.e. through a web portal) modified or derivative software.

I hope that helps to clarify the licensing for you and anyone else that finds this thread in the future :slight_smile:

4 Likes

Hi robin,
I have a similiar case as vklogi, but i want to integrate k6 binary with my maven package plugin, to run benchmark tests, can i do this ?

Hi @victorpasqualino, yes using k6 to run benchmark tests with Maven is ok :slight_smile:

Hi @robin,
I want to make sure I understand the licensing correctly, can you help me out with the following case:

I would like to write javascript or typescript scripts to test our API and I would like to run these tests with k6 that I install in kubernetes ( or my local machine for local development ).

Can I do this without having to publish my javascript/typescript scripts? My company does not allow publishing anything, so this is a very important question for us.

In case the answer is no to the above question. What happens if I buy the Developer subscription, how does the license apply then? Will I still be bound to pulish my scripts?

Thanks,
letti

Hi @letti!

Yes, absolutely. You can run k6 locally or in kubernetes, and keep your test cases private. You don’t need buy a subscription from us to do that.

The OSS license (AGPLv3) controls what can be done with the k6 source code, in terms of modifications, distribution and running it as part of an offered service etc.

Hope that clarifies it :slight_smile:

1 Like

Hi all!

I’m a little confused with Open Source and paid Cloud k6 versions. Is k6 free for using on our own distributed cloud load generation infrastructure? Here Open source load testing tool review 2020 is said that distributed load generation is available only in premium.

Could anybody clarify it?

It is, if you can make it work. Distributed execution natively in k6 is not quite ready for prime-time yet, though if you can spend a bit of time working around the issues (e.g. spin up some central metrics storage like InfluxDB), you can use it without paying us anything. Watch Clustering and distributed execution · Issue #140 · grafana/k6 · GitHub for updates on our effort to build native distributed execution, as well as some information on how to spin up something right now (eg. this post or GitHub - grafana/k6-operator: An operator for running distributed k6 tests.)

Are load testing scripts (javascript scripts which import http from 'k6/http'; ), do they need to be release with AGPL as well? Does that count as “dynamically linking”?

1 Like

Hi,

We are looking at taking K6 and making it available as SaaS (paid), same idea as K6 cloud. What does it mean in licensing terms and releasing source code? Does it mean we have to make available whatever goes into “baking the SaaS” (Terraform modules, etc)?

We looked at Grafana repos and could not find anything K6 Cloud specific.

Thanks!

@quicktypez

Sorry, but we can’t provide you with legal advice. You’re responsible for seeking professional legal advice if you need it, doing your own diligence on license compliance and making sure you comply with the AGPLv3 license at all times